在.net winform中创建圆角容器

Omk*_*kar 2 .net c# winforms

我想在winform .net中创建圆角容器.我的目标是创建一个容器,如果我在其中放下任何其他控件,那么该控件也将变成圆形.

这可能吗?

Cod*_*ray 5

您正在寻找Control.Region属性,它允许您设置与特定控件关联的窗口区域.操作系统不会绘制或显示位于窗口区域之外的窗口的任何部分.

该文档提供了如何使用该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);
}
Run Code Online (Sandbox Code Playgroud)