如何创建自定义属性
本文关键字:自定义属性 创建 何创建 | 更新日期: 2023-09-27 18:36:47
我需要创建一个自定义属性的含义,而不是使用
<Style x:Key="ABC" TargetType="Rectangle">
<Setter Property="Fill" Value="Red"/>
</Style>
我喜欢像矩形这样的东西并为其分配一个 ID,以便稍后当它放在画布上时,我可以检索它的 ID。
<Style x:Key="ABC" TargetType="Rectangle">
<Setter Property="Fill" Value="Red"/>
**<Setter Property="ID" Value="1234567890-ABC"/>**
</Style>
如何定义该自定义属性?
问候阿米特
在单独的类中定义自定义附加属性:
public class Prop : DependencyObject
{
public static readonly DependencyProperty IDProperty =
DependencyProperty.RegisterAttached("ID", typeof(string), typeof(Prop), new PropertyMetadata(null));
public static void SetID(UIElement element, string value)
{
element.SetValue(IDProperty, value);
}
public static string GetID(UIElement element)
{
return (string)element.GetValue(IDProperty);
}
}
然后你可以使用它:
<Setter Property="local:Prop.ID" Value="1234567890-ABC"/>
local
必须在 XAML 的根元素中按如下所示进行定义:
xmlns:local="clr-namespace:AttPropTest"
其中AttPropTest
是程序集的命名空间。
在代码中,您可以使用 Prop.GetID(myRect)
确定 ID。