【问题标题】:C# Winforms Irregular Windows [duplicate]C# Winforms不规则窗口[重复]
【发布时间】:2009-08-25 16:36:36
【问题描述】:

如何使用 WinForms 和 C# 创建形状不规则的窗口?

【问题讨论】:

  • 你对不规则的定义是什么?
  • 我猜没有带有标题栏、边框等的常规 WinForm 外观?
  • 没有像我们见过的一些windows media player皮肤那样不规则的窗口,得到的点不是矩形或圆边。
  • 这应该被关闭,因为 Nifle 指出这是一个骗局。

标签: c# windows winforms


【解决方案1】:

有几种不同的方法可以实现这一点。一种是使用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 对象中的重叠数字如何相互“反转”(这可以通过设置path.FillMode = FillMode.Winding 来防止)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-22
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多