c#同一个pictruebox上如何动态的画多个多边形

如题所述

可参考下面的例子:
//拿来一块画布,大小为400*400
Image img = new Bitmap(400, 400);
pictureBox1.Image = img;
//创建一个Graphics实例,让它通过windows系统去与外部设备打交道;
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.Clear(Color.White); //将画面擦干净
//设计一下画的透明度
int transValue = 255;
//拿来一把红色的画刷;
SolidBrush myBrush = new SolidBrush(Color.FromArgb(transValue, Color.Red));
//拿来一把红色的画笔
Pen myPen = new Pen(Color.FromArgb(transValue, Color.Red), 1);
g.DrawLine(myPen, -200, 0, 200, 0); //水平方向画一条线
g.DrawLine(myPen, 0, -200, 0, 200); //垂直方向画一条线
Font myFont = new Font("黑体", 15); //设计一下我要写的字的字体及大小
//将我要写的所有字的尺寸测量一下
SizeF strSize = g.MeasureString("FURENJUN 绘图", new Font("黑体", 15), new PointF(), StringFormat.GenericDefault );
int width = (int)(strSize.Width + 10.0f);
//好了,写几个字看看吧
g.DrawString(myDrawingStr, myFont, myBrush, new PointF(10, 5));
//再画一个长方形
Rectangle rect = new Rectangle(width, 0, 30, (int)strSize.Height);
g.DrawRectangle(new Pen(Color.FromArgb(transValue, Color.Blue), 1), rect);
g.FillRectangle(new SolidBrush(Color.FromArgb(transValue, Color.Blue)), rect);
g.TranslateTransform(10, 0);//水平移动10pz
g.TranslateTransform(0, 10);//垂直移动 10px
g.RotateTransform(30); //旋转30度
//再画一个圆
g.DrawPie(Pens.Red, rect, 0, 360);
g.FillPie(Brushes.Red, rect, 0, 360);
//还要画啥,你往下添吧.
//...追问

上面的问题我已经解决了,谢谢你,现在又出现了一个下面的新问题:
c#中如何对picturebox中多个已画图形中的一个选中并编辑

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-28
用randm生成器,和Time控件追问

能给个例子吗 ,我是新手,不是太懂

追答

我刚做了系统例子找不到了,你可以上网上看看那两个控件是怎么用的,然后学学画多边形怎么画,自己应该可以搞定的

c#同一个pictruebox上如何动态的画多个多边形
pictureBox1.Image = img;\/\/创建一个Graphics实例,让它通过windows系统去与外部设备打交道;Graphics g = Graphics.FromImage(pictureBox1.Image);g.Clear(Color.White); \/\/将画面擦干净 \/\/设计一下画的透明度 int transValue = 255;\/\/拿来一把红色的画刷;SolidBrush myBrush = new SolidBrush(...

C#中如何一个picturebox控件放多张图片
1. 借助timer控件,当点击按钮的时候激活timer事件,然后在timer事件里面组织显示图片就可以了。图片呢,可以把名字存入一个数组,在timer的滴答事件中循环调用,每触发一次数组就移动一个索引,直到最后一个为止。2 . 对于多线程的话,实现这种功能用多线程就是大材小用。不过也可以,可以把显示图片的...

c# 窗体的控件中加载多个图片的问题
如果是静态的话很好实现,拖放一个PictureBox,然后点击右上方的智能按钮(黑色小三角),根据提示选择图片路径就可以了。但是我相信你要的是动态添加,呵呵:先在窗体上添加一个Panel,命名为pnl PictureBox pic= new PictureBox();pic.Image=Image.FromFile("图片的绝对路径+扩展名");pnl.Controls.Add...

C#通过不同按钮在picturebox上画出圆、三角形
然后,调用picturebox的Invalidate方法,这个方法会引起picturebox重绘。 最后,重写PictureBox的OnPaint方法,或是响应Paint事件,根据iShaper的值来绘出不同的图形。 以下是有保存功能的代码。就是不直接画在picturebox上,而是画在一个Bitmap上,然后把bitmap画到界面上。保存时,只要保存这个bitmap就行了。 1 2 3 4 ...

c# winform 一个picturebox如何显示多个图片,并保持这些图片到数据库中...
一个Picturebox只能显示一个图片,除非你在程序中设置一个FileOpenDialog,或者用其他方法让用户选取图片,然后加载到PictureBox中。至于保存到数据库,这是ADO.NET的基础知识。你在网上搜一搜"ADO.NET保存图片",保准有大把的资料。

在C#中如何按照随机点数移动图片(有多个picturebox,就在这多个pictureb...
然后你把这个坐标和picturebox控件的左上角一一比对,看那个最接近(x,y)就在哪个picturebox中显示。不过如果picturebox过多的话,会非常麻烦。所以请看第二种方法:不用picturebox,直接随机产生x和y(当然x,y的大小你要限定,不能超过坐标)以后,直接GDI+画图画到这个窗体上面。

c#窗口运用程序中添加了一个picture控件怎样让它从左运动到右?_百度知 ...
在 C# 窗口应用程序中,让一个 PictureBox 控件从左到右运动可以通过编写代码来实现。以下是一种实现方式:在窗口中添加一个 PictureBox 控件,并设置其初始位置在窗口左侧。在窗口的 Form_Load 事件处理程序中,创建一个计时器(Timer),并将其启动。这个计时器将用于不断更新 PictureBox 的位置。在...

C#picturebox中的图像怎么能随着窗体的大小而改变
首先设置PictureBox的SizeMode属性为StretchImage或者Zoom,然后在Form的sizeChange事件中,改变PictureBox的大小 就可以实现你的要求

如何在C#中使用PictureBox控制图片集的上一张和下一张?
关键的代码环节在于控制图片的切换。想象一下,一个简单的变量扮演着索引的角色,用于追踪当前显示的图片位置。在"上一张"和"下一张"按钮的点击事件中,编写这样的函数:private void navigate_images(){ int i = 图片集的名字.images.length; \/\/ 获取当前图片索引 图片框的名字.image = 图片集的...

多个pictureBox的使用问题c#
6个pictureBox在同一个容器里么?如果不是,只有做一个List<PictureBox>数组了 如果是 foreach(Control ctrl in 容器.Controls){ if (ctrl is PictureBox){ PictureBox myPic = ctrl as PictureBox;\/\/下面做你自己要做的事 } }

相似回答