C# Winforms 不规则窗口

标签 c# windows winforms

<分区>

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

最佳答案

有几种不同的方法可以实现这一点。一种是使用 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 来防止)。

关于C# Winforms 不规则窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1326673/

相关文章:

c# - 从数据表(Windows 窗体)填充 ListView 或列表框

c# - 为什么在模态对话框中调用 Hide() 时 FormClosing 会触发两次?

C# 日期时间 ISO 8601 格式给出不正确的值

c# - 从特定位置读取 C# 中的二进制文件

c# - Linq to Object/XML 其中元素不存在

c# - 如何使用新语法树部分更新编译?

java - 哪一种主要操作系统最适合快速引导和启动 Java 应用程序?

windows - 根据安装程序处于用户模式还是管理员模式更改环境注册表项

windows - 在 windbg 中的 COM 类方法上设置断点

c# - 自定义控件派生自组件 - OnCreate 事件?