如何用C#的GDI+绘制两个图
我想问下怎么在一个窗口中绘制了一个图,比如矩形,然后再重复绘制一个.两个可以出现在同一个窗口中.因为我自己写了下,只能绘制一个图...当绘制第二个的时候...第一个老是被...
我想问下怎么在一个窗口中绘制了一个图,比如矩形,然后再重复绘制一个.两个可以出现在同一个窗口中.因为我自己写了下,只能绘制一个图...当绘制第二个的时候...第一个老是被覆盖掉了...
我自己有一个想法是.能不能我用两个Graphics.一个是我在拉图的时候显示我要拉的图的轮廓,然后另外一个是我拉完轮廓后定位的那个图就绘制在上面...然后把第二个Graphics显示出来...
请高手教下..
如果只是给两个确定的参数的话...我可以直接的画出两个图...但是...我要在拉图的时候有轮廓出来...所以我就需要一边画一边清除图画(目前我只能想到这个)直到最后我确定了图形之后再把图定位好...
之后我再拉第二个图,但是我一拉图就会把第一个图给清掉.(因为在拉第二个图的时候也会一边拉一边清.所以把第一个图给清掉了...)有没有方法能拉两个图又不清掉第一个图呢... 展开
我自己有一个想法是.能不能我用两个Graphics.一个是我在拉图的时候显示我要拉的图的轮廓,然后另外一个是我拉完轮廓后定位的那个图就绘制在上面...然后把第二个Graphics显示出来...
请高手教下..
如果只是给两个确定的参数的话...我可以直接的画出两个图...但是...我要在拉图的时候有轮廓出来...所以我就需要一边画一边清除图画(目前我只能想到这个)直到最后我确定了图形之后再把图定位好...
之后我再拉第二个图,但是我一拉图就会把第一个图给清掉.(因为在拉第二个图的时候也会一边拉一边清.所以把第一个图给清掉了...)有没有方法能拉两个图又不清掉第一个图呢... 展开
3个回答
展开全部
这个你可以建立两个全局Bitmap图层变量 img1和img2
img1用来存储你已经画好了的图层(可以在抬起鼠标时mouseup事件中将img2添加到img1中)
img2用来存储你正在画但未确定的图层(在mousemove事件中根据e.location绘制你想要大小的矩形,并且调用this的窗口重绘事件)
Paint事件里写两张图片的绘制语句
{
if(!null==img1)
{
e.graphic.drawimage(img1,0,0)
}
if(!null==img2)
{
e.graphic.drawimage(img2,0,0)
}
}
img1用来存储你已经画好了的图层(可以在抬起鼠标时mouseup事件中将img2添加到img1中)
img2用来存储你正在画但未确定的图层(在mousemove事件中根据e.location绘制你想要大小的矩形,并且调用this的窗口重绘事件)
Paint事件里写两张图片的绘制语句
{
if(!null==img1)
{
e.graphic.drawimage(img1,0,0)
}
if(!null==img2)
{
e.graphic.drawimage(img2,0,0)
}
}
展开全部
这个只跟参数有关吧,点位置不同,就可以绘制不同的图形
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不是要拉图吗?
肯定要用到mousemove事件,矩形1 和 矩形2 的值也要在这个事件里改变。
矩形1=new Rectangle();
矩形2=new Rectangle();
最后在这个事件里写上this.Invalidate();
Paint事件里写
e.Graphic.DrawRectangle(new Pen(Color.Red),矩形1);
e.Graphic.DrawRectangle(new Pen(Color.Red),矩形2);
可以hi我,
肯定要用到mousemove事件,矩形1 和 矩形2 的值也要在这个事件里改变。
矩形1=new Rectangle();
矩形2=new Rectangle();
最后在这个事件里写上this.Invalidate();
Paint事件里写
e.Graphic.DrawRectangle(new Pen(Color.Red),矩形1);
e.Graphic.DrawRectangle(new Pen(Color.Red),矩形2);
可以hi我,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询