将我自己的属性添加到任何控件

时间:2014-10-23 07:58:25

标签: c# wpf xaml

是否可以将自己的自定义属性添加到任何控件?

我想做类似于例如X:名称=" aname"

所以我可以写xaml:

<TextBox local:MyCustomProperty="myValue" />

也许某人可以提供一个小样本或显示如何执行此操作的链接。

在Google中我只找到了标记扩展程序,这似乎不是我要找的。

1 个答案:

答案 0 :(得分:2)

您可以使用Attached Property

public class MyCustomProperty
{
    #region Color dependency property

    public static readonly DependencyProperty ColorProperty;

    public static Color GetColor(DependencyObject obj)
    {
        return (Color)obj.GetValue(ColorProperty);
    }

    public static void SetColor(DependencyObject obj, Color value)
    {
        obj.SetValue(ColorProperty, value);
    }

    #endregion

    static MyCustomProperty()
    {
        //register attached dependency property
        var metadata = new FrameworkPropertyMetadata(Colors.Transparent);
        ColorProperty = DependencyProperty.RegisterAttached("Color",
                                                            typeof(Color),
                                                            typeof(MyCustomProperty), metadata);
    }
}

在XAML中

<DockPanel  custom:MyCustomProperty.Color="{StaticResource MyColor}" >