C#Winforms不规则Windows

如何使用WinForms和C#创build具有不规则形状的窗口

Solutions Collecting From Web of "C#Winforms不规则Windows"

有几个不同的方法来实现这一点。 一个是使用TransparencyKey (如在Nifle指出的帖子中)。 另一个是将Region对象分配给表单的Region属性:

 System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); path.AddPolygon(new[] { new Point(20, 20), new Point(40, 10), new Point(180, 70), new Point(160, 260), new Point(80, 140) }); path.AddEllipse(40, 40, 300, 300); this.Region = new Region(path); 

请注意,坐标是指窗口,而不是客户区域。 另请注意,默认情况下, GraphicsPath对象中的重叠GraphicsPath如何相互“反转”(这可通过设置path.FillMode = FillMode.Winding来防止)。