在XAML中向元素添加自定义属性?

在html中,没有什么可以阻止你创建自定义属性,因为它实际上是xml,如

 

然后你可以通过javascript阅读该属性。

你能在wpf中做同样的事情吗? 例如:

  

如果是这样,您将如何访问该属性? 例如:

 MyCanvas.MyProperty; 

您可以获得的最接近的属性 。 基本上,另一个类定义了一个已知属性(即MyProperty),可以在其他元素上设置。

一个示例是Canvas.Left属性,Canvas使用该属性来定位子元素。 但任何类都可以定义附加属性。

附加属性是附加行为背后的关键,这是WPF / Silverlight的一个重要特性。

编辑:

这是一个示例类:

 namespace MyNamespace { public static class MyClass { public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.RegisterAttached("MyProperty", typeof(string), typeof(MyClass), new FrameworkPropertyMetadata(null)); public static string GetMyProperty(UIElement element) { if (element == null) throw new ArgumentNullException("element"); return (string)element.GetValue(MyPropertyProperty); } public static void SetMyProperty(UIElement element, string value) { if (element == null) throw new ArgumentNullException("element"); element.SetValue(MyPropertyProperty, value); } } } 

然后在XAML中你可以像这样使用它:

 xmlns:local="clr-namespace:MyNamespace"  

您可以使用MyClass.GetMyProperty从代码中获取属性,并传入设置该属性的元素。