local:MyControl 在哪里定义呢?多种方式实现自定义控件,控件由一个Rectangle和一个label组成,label的content可以从调用自定义控件外部修改
时间: 2024-02-09 12:12:11 浏览: 81
解析C#自定义控件的制作与使用实例的详解
MyControl 是一个本地定义的控件,它可以在 XAML 中定义,也可以在 C# 代码中定义。在 XAML 中定义 MyControl,可以使用以下代码:
```
<UserControl x:Class="MyNamespace.MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Rectangle x:Name="rect" Fill="Blue" />
<Label x:Name="label" Content="MyControl" />
</Grid>
</UserControl>
```
在 C# 代码中定义 MyControl,可以使用以下代码:
```
public class MyControl : UserControl
{
private Rectangle rect;
private Label label;
public MyControl()
{
rect = new Rectangle();
rect.Fill = Brushes.Blue;
Children.Add(rect);
label = new Label();
label.Content = "MyControl";
Children.Add(label);
}
public string LabelContent
{
get { return label.Content.ToString(); }
set { label.Content = value; }
}
}
```
在这个示例中,我们在 MyControl 类中定义了一个名为 LabelContent 的属性,它可以用于修改 Label 的内容。
阅读全文