完全绑定控件,而不仅仅是属性



我正在开发一个带有用户控件的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">

我需要更改BorderBrushBorderThickness(也许还有另一个属性),所以我认为我只能有一个属性而不是三个或四个。

在这种情况下,您需要为每种类型的单独属性创建,因为要使用一个属性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类的附加属性。

相关内容

最新更新