如何在c#中创建非矩形窗体?

sha*_*r_m 7 .net c# winforms

有没有办法在c#或.net中创建非矩形窗口形式,如圆形或椭圆形?
我看到这些独特的窗户形状,在我见过的几个装置中看起来非常整洁.

此外,将这种设计用于非标准形式,例如可持续性,崩溃等,是否有任何不利之处?

Mar*_*acz 12

表单具有Region属性,您可以在其中指定您创建的任何形状.例如,要创建椭圆形式,您可以在Form1_Load()表单方法中使用此代码:

 GraphicsPath path = new GraphicsPath();
 path.AddEllipse(0,0,this.Width,this.Height);
 Region region = new Region(path);
 this.Region = region;
Run Code Online (Sandbox Code Playgroud)

风险在于,当您创建非矩形表单并关闭时,最小化按钮会按区域被截断,然后某些最终用户可能会遇到关闭应用程序的问题.