我正在开发一个带有用户控件的Windows Phone 8应用程序。
此用户控件有一个边框,我想创建一个 DependencyProperty 来访问此边框:
public partial class CustomOptionButton : UserControl
{
public Border OuterBorder
{
get
{
return (Border)GetValue(OuterBorderProperty);
}
set
{
SetValue(OuterBorderProperty, value);
}
}
public readonly DependencyProperty OuterBorderProperty =
DependencyProperty.Register("OuterBorder", typeof(Border), typeof(CustomOptionButton), null);
但我不知道如何在 XAML 中绑定此属性。
当我绑定 TextBlock.Text 时,我在 XAML 上执行此操作:
<TextBlock x:Name="CustomText" Text="{Binding ButtonText, ElementName=userControl}" />
但是,我怎样才能对整个边界做同样的事情?
<Border x:Name="OutBorder" BorderBrush="White" BorderThickness="2" Margin="0">
我需要更改BorderBrush
和BorderThickness
(也许还有另一个属性),所以我认为我只能有一个属性而不是三个或四个。
在这种情况下,您需要为每种类型的单独属性创建,因为要使用一个属性Border
需要创建一个单独的控件,如下所示:
public сlass MyBorderControl : Border
{
// Your implementation of Control
}
如果要创建可用于任何Control
的属性,在 WPF 中具有attached
属性:
MSDN: Attached properties overview
并像这样使用:
<Canvas>
<Button Canvas.Left="50">Hello</Button>
</Canvas>
在这种情况下,Canvas.Left
用于Button
类的附加属性。