不规则形状的Windows窗体(C#)

20

如何最简单地完成这个任务?使用托管代码是否可行?


http://www.freevbcode.com/ShowCode.asp?ID=3723 - theraccoonbear
2个回答

30
this.BackgroundImage = //Image
this.FormBorderStyle = FormBorderStyle.None;
this.Width = this.BackgroundImage.Width;
this.Height = this.BackgroundImage.Height;
this.TransparencyKey = Color.FromArgb(0, 255, 0); //Contrast Color

这允许您基于图像创建一个表单,并使用透明度指数使其看起来不是矩形的。


不幸的是,如果窗体的不透明度设置为100%以外的任何值,这种方法就不起作用了(显然,.NET会先应用不透明度效果,然后再应用透明度掩码)。 - MusiGenesis
3
可以,但需弄清楚透明度效果后透明色会是什么。目前它能够起作用。 - MusiGenesis
在.NET中实现不规则表单的最简单方法 http://www.codeproject.com/Tips/149249/Simplest-way-to-implement-irregular-forms-in-NET - Lei Yang

8

@Geoff展示了Winforms的正确使用方式。

但如果您计划使用WPF而不是Winforms,则WPF(.NET3.0+)提供了非常灵活的方法来创建任何形状的自定义窗口。也请查看这篇文章:http://www.codeproject.com/KB/WPF/wpfpopup.aspx


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接