0

2つのグリッド行内にLabelとRectangleを使用してUserControlを作成しました。プロパティを追加しました

public string SetText
{
    get
    {
        return (string)GetValue(mLabel.ContentProperty);
    }
    set
    {
        SetValue(mLabel.ContentProperty, value);
    }
}

プロパティの使用法

<local:PlayerMiniImage SetText="Player 1" ...

プロパティを使用すると、ラベルのフォントが変更され、長方形が消えました。何か考えがありますか?

4

1 に答える 1

0

UserControlを定義する場合...

<UserControl x:Class="...">
    <Border>
        <!-- ... -->
    </Border>
</UserControl>

次に、その中のすべて、ここではBorder、がですContent。したがって、設定するとContentPropertyすべてが置き換えられます。


ラベルの内容を設定するには、新しいDPを作成します。

public static readonly DependencyProperty LabelContentProperty =
    DependencyProperty.Register("LabelContent", typeof(object), typeof(MyUserControl), new UIPropertyMetadata(null));
public object LabelContent
{
    get { return (object)GetValue(LabelContentProperty); }
    set { SetValue(LabelContentProperty, value); }
}

ラベルをそれにバインドします。

<Label Content="{Binding LabelContent, RelativeSource={RelativeSource AncestorType=UserControl}}"/>
于 2011-12-23T14:45:03.563 に答える