在,net NAUI中 创建一个自由调整圆角的label
时间: 2024-03-11 20:47:14 浏览: 139
在 .NET WinForms 中创建一个自由调整圆角的 Label,可以自定义一个继承自 Label 的控件,并在其构造函数中设置圆角大小。
以下是一个简单的示例:
```csharp
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
public class RoundLabel : Label
{
public int CornerRadius { get; set; }
public RoundLabel()
{
CornerRadius = 10;
}
protected override void OnPaint(PaintEventArgs e)
{
GraphicsPath graphicsPath = new GraphicsPath();
graphicsPath.AddArc(0, 0, CornerRadius, CornerRadius, 180, 90);
graphicsPath.AddArc(Width - CornerRadius, 0, CornerRadius, CornerRadius, 270, 90);
graphicsPath.AddArc(Width - CornerRadius, Height - CornerRadius, CornerRadius, CornerRadius, 0, 90);
graphicsPath.AddArc(0, Height - CornerRadius, CornerRadius, CornerRadius, 90, 90);
graphicsPath.CloseAllFigures();
Region = new Region(graphicsPath);
base.OnPaint(e);
}
}
```
在这个自定义的 Label 控件中,我们定义了一个属性 `CornerRadius`,用于设置圆角大小,默认为 10。在 `OnPaint` 方法中,我们创建了一个 `GraphicsPath` 对象,并使用 `AddArc` 方法添加四个圆角的路径。最后,我们使用 `Region` 属性将控件的区域设置为圆角路径。
使用这个自定义的控件,你可以很容易地创建一个拥有自由调整圆角的 Label。
```csharp
RoundLabel roundLabel = new RoundLabel();
roundLabel.Text = "Hello, World!";
roundLabel.BackColor = Color.White;
roundLabel.ForeColor = Color.Black;
roundLabel.CornerRadius = 20;
roundLabel.Size = new Size(200, 100);
```
这个控件可以在 WinForms 应用程序中使用,也可以通过 NuGet 包管理器安装 `System.Windows.Forms` 并在 .NET Core 应用程序中使用。
阅读全文