学海无涯

导航

GDI+常用代码

使控件整个图象失效,并重新绘制控件

 _mChart.Invalidate();

将控件的背景色和窗体的背景色保持一致

 private void UserControl1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.Clear(this.BackColor);
        }

 使用图片作为画布

 Bitmap bmp = new Bitmap(600, 400, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
 Graphics g = Graphics.FromImage(bmp);

系统默认提供的宽度为1的Pen对象

Pen redPen = new Pen(Color.Red, 2);
Pen blackPen = Pens.Black;//系统默认宽度为1的Pen实例

系统提供的默认笔刷 Brushes.Green

 var g = e.Graphics;
Point point = new Point(300, 400);
Size size = new Size(10, 10);
Rectangle rect = new Rectangle(point, size);
g.FillRectangle(Brushes.Green, rect);

图形抗锯齿平滑模式

 Graphics g = e.Graphics;
g.SmoothingMode = SmoothingMode.AntiAlias;
Rectangle 的方法
方法 描述
Ceiling 向上舍入,大于这个值的最小整数,将RectangleF 转换成 Rectangle
Contains 确定指定的点是否包含在一个矩形 的区域中
FromLTRB 根据指定的边界创建一个新的矩形
Inflate 生成的一个放大的新矩形
Intersect 使一个矩形和另一个矩形的交集,来替代自身
Intersects With 判断当前矩形是否和其他矩形相交
Offset 将矩形偏移到一个新位置
Round 将 RectangleF 的值四舍五入,得到Rectangle
Truncate 截断 RectangleF 的值,并转换成 Rectangle 对象
Union 返回一个包含两个Rectangle 结构体的并集的矩形

  

移动原始坐标:

 private void UserControl1_Paint(object sender, PaintEventArgs e)
        {
            var g = e.Graphics;
            g.FillRectangle(Brushes.Blue, 50, 50, 100, 60);

            Matrix x = new Matrix();
            x.Translate(100,100);
            g.Transform = x;
            g.FillRectangle(Brushes.Blue, 50, 50, 100, 60);
        }

  

  

  

 

  

posted on 2024-02-09 11:18  宁静致远.  阅读(18)  评论(0)    收藏  举报