GDI+画图时Graphics的获得

前提:我想用一个PictureBox显示一张全屏截图的图片,然后根据一个全屏的坐标在图像上标注出一个20X20的矩形。

画图使用Graphics对象,从一个PictureBox创建Graphics可以使用2种方法。

using(Graphics graphics = pictureBox.CreateGraphics())
{
graphics.DrawRectangle(
new Pen(Color.Red), rect);
}

使用这种方法发出的矩形框,rect的坐标系使用的PictureBox本身的坐标系。我加载的图片是全屏的截图,使用的坐标也是屏幕坐标,所以还得把屏幕坐标转化为PictureBox的Image坐标。非常麻烦啊,而且矩形会闪一下就消失,估计要重写PictureBox的OnPaint方法才能一直显示矩形了。

后来发现第二种方法。

using(Graphics graphics = Graphics.FromImage(pictureBox.Image))
{
graphics.DrawRectangle(
new Pen(Color.Red), rect);
}

坐标直接用屏幕的坐标就可以,而且矩形不会闪烁一下就消失。

转载于:https://www.cnblogs.com/Xavierr/archive/2011/08/22/2149708.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值