0

我在 2 个网格行内创建了一个带有标签和矩形的 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>

然后它里面的所有东西,这里 a 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 回答