1

使用するのではなく、カスタムプロパティを作成する必要があります

<Style x:Key="ABC" TargetType="Rectangle">
    <Setter Property="Fill" Value="Red"/>
</Style>

私はRectangleのようなものを持っていて、それにIDを割り当てるのが好きなので、後でCanvasにドロップしたときにそのIDを取得できます。

<Style x:Key="ABC" TargetType="Rectangle">
    <Setter Property="Fill" Value="Red"/>
    **<Setter Property="ID" Value="1234567890-ABC"/>**
</Style>

そのカスタムプロパティをどのように定義できますか?

よろしく、アミット

4

1 に答える 1

4

別のクラスでカスタム添付プロパティを定義します。

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"/>

localXAMLのルート要素で次のように適切に定義する必要があります。

xmlns:local="clr-namespace:AttPropTest"

ここAttPropTestで、はアセンブリの名前空間です。

コードでは、でIDを判別できますProp.GetID(myRect)

于 2012-06-08T19:35:08.633 に答える