我想在winform .net中创建圆角容器。我的目标是创建一个容器,如果我放弃其中的任何其他控件,那么该控件也将变成圆形。
这可能吗?
答案 0 :(得分:5)
您正在寻找Control.Region
property,它允许您设置与特定控件关联的窗口区域。操作系统不会绘制或显示位于窗口区域之外的窗口的任何部分。
该文档提供了如何使用Region
属性创建圆形按钮的示例:
// This method will change the square button to a circular button by
// creating a new circle-shaped GraphicsPath object and setting it
// to the RoundButton objects region.
private void roundButton_Paint(object sender, PaintEventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath buttonPath =
new System.Drawing.Drawing2D.GraphicsPath();
// Set a new rectangle to the same size as the button's
// ClientRectangle property.
System.Drawing.Rectangle newRectangle = roundButton.ClientRectangle;
// Decrease the size of the rectangle.
newRectangle.Inflate(-10, -10);
// Draw the button's border.
e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);
// Increase the size of the rectangle to include the border.
newRectangle.Inflate( 1, 1);
// Create a circle within the new rectangle.
buttonPath.AddEllipse(newRectangle);
// Set the button's Region property to the newly created
// circle region.
roundButton.Region = new System.Drawing.Region(buttonPath);
}
答案 1 :(得分:0)