如何重塑形状?

时间:2010-01-18 05:36:53

标签: c# winforms graphics transparency

我在使用C#开发的应用程序中有一个表单。在那种形式中,我创建了一个图形形状(圆形)。在运行时,我希望我的表单也只是那种形状。也就是说,我想只显示那个图形而不是背景或标题栏或任何东西。我想只显示那个图形。但问题是我无法塑造自己的形态。我将该图形控件作为用户控件添加到我的表单中。

3 个答案:

答案 0 :(得分:3)

我怀疑你正在尝试制作类似闪屏的效果。这不是很难做到。这是一个很好的tutorial,可以帮助您入门。

技巧本质上是将表单的透明度键设置为您希望透明的颜色(在这种情况下,除了您的圆之外的所有。此外,您需要将表单设置为无边界。


顺便说一句,你可以编辑你的问题,添加一些关于为什么你想要这样做的信息 - 我很好奇你的目标是什么,就用户体验而言。

答案 1 :(得分:2)

您还可以检查MSDN的Region属性。您可以使用System.Drawing对象绘制您想要的任何形状,然后在显示之前设置表格Region属性,它将采用您给它的任何形状...这是一个简短的例子:

http://www.vcskicks.com/custom_shape_form_region.php

答案 2 :(得分:2)

如果您需要循环表单,可以将以下代码放在表单加载事件处理程序中:

System.Drawing.Drawing2D.GraphicsPath myPath = new  System.Drawing.Drawing2D.GraphicsPath();
//this line of code adds an ellipse to the graphics path that inscribes
//the rectangle defined by the form's width and height
myPath.AddEllipse(0,0,this.Width,this.Height);
//creates a new region from the GraphicsPath
Region myRegion = new Region(myPath);
this.Region = myRegion;

然后将窗体的FormBorderStyle属性设置为None。