先看一个关于setclip用法的初步使用的例子:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Drawing; 6 using System.Windows.Forms; 7 using System.Drawing.Drawing2D; 8 9 namespace SetClipDemo 10 { 11 class SetClipDemo:Form 12 { 13 static void Main(string[] args) 14 { 15 Application.Run(new SetClipDemo()); 16 } 17 public SetClipDemo() 18 { 19 Text = "Set Clip Demo"; 20 ResizeRedraw = true; 21 } 22 23 protected override void OnPaint(PaintEventArgs e) 24 { 25 Graphics grfx = e.Graphics; 26 GraphicsPath path = new GraphicsPath(); 27 path.AddEllipse(0,0,ClientSize.Width/3 * 2,ClientSize.Height); 28 path.AddEllipse(ClientSize.Width / 3, 0, ClientSize.Width / 3 * 2, ClientSize.Height); 29 //grfx.DrawPath(new Pen(Color.Red), path); 30 31 grfx.SetClip(path); 32 33 grfx.FillPath(Brushes.Violet, path); 34 } 35 } 36 }
这个示例比较简单,就是画了两个椭圆,两个椭圆有交叉部分;而后,使用setclip进行区域裁剪,结果如下:
关于setclip用法的理解,书中有比较形象的解释,特引用如下
裁剪区域setclip生效以后,后续代码中的所涉及的内容,只能在所裁剪的区域中才能展现出来,如上述代码中的violet颜色,我们使用的代码是填充整个客户区的,但是裁剪区域之后,只能在裁剪区域中才可以看到violet颜色。
标签:SetClip,裁剪,System,初步,path,ClientSize,using,setclip From: https://www.cnblogs.com/chenlight/p/16905751.html