我在2个网格行中创建了一个带有Label和Rectangle的UserControl。 我添加了属性
public string SetText
{
get
{
return (string)GetValue(mLabel.ContentProperty);
}
set
{
SetValue(mLabel.ContentProperty, value);
}
}
使用属性
<local:PlayerMiniImage SetText="Player 1" ...
当我使用该属性时,标签的字体发生了变化,矩形消失了 有什么想法吗?
答案 0 :(得分: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}}"/>