wpf 自定义控件中自定义属性,调用此自定义控件,设置其属性值
时间: 2024-01-03 15:05:16 浏览: 118
WPF之自定义控件
在 WPF 中,我们也可以为自定义控件添加自定义属性,然后在 XAML 中使用该控件并设置属性值。以下是具体步骤:
1. 在自定义控件类中定义依赖属性,例如:
```csharp
public static readonly DependencyProperty CustomProperty =
DependencyProperty.Register("Custom", typeof(string), typeof(CustomControl), new PropertyMetadata("Default"));
public string Custom
{
get { return (string)GetValue(CustomProperty); }
set { SetValue(CustomProperty, value); }
}
```
这里定义了一个名为 Custom 的依赖属性,其类型为字符串,所有者类型为 CustomControl。默认值为 "Default"。
2. 在自定义控件的 XAML 文件中,使用该属性,例如:
```xml
<UserControl x:Class="WpfApp1.CustomControl"
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="450" d:DesignWidth="800">
<Grid>
<TextBlock Text="{Binding Custom, RelativeSource={RelativeSource AncestorType=UserControl}}" />
</Grid>
</UserControl>
```
这里使用了 Binding,将 Custom 属性绑定到 TextBlock 的 Text 属性上。
3. 在使用自定义控件的 XAML 文件中,设置该属性的值,例如:
```xml
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
Title="MainWindow" Height="450" Width="800">
<Grid>
<local:CustomControl Custom="SomeValue" />
</Grid>
</Window>
```
这里在 MainWindow 中使用了 CustomControl,并设置了 Custom 属性的值为 "SomeValue"。
希望这个回答能够解决你的问题。如果还有疑问,请随时提出。
阅读全文