我有一个WPF用户控件,里面有几个标签(动态创建)。我想从我的用户控件中设置这些标签的样式(每个标签应该具有相同的样式)。
因此,简单来说,设置用户控件的样式应该将该样式应用于其所有标签。
答案 0 :(得分:2)
可以在UserControl Resources中声明Label的样式,并将Setters值绑定到UserControl属性,例如:
<UserControl x:Class="WpfApplication3.UserControl1"
x:Name="Uc1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<UserControl.Resources>
<Style TargetType="Label">
<Setter Property="Foreground"
Value="{Binding Foreground, ElementName=Uc1, Mode=OneWay}"/>
</Style>
</UserControl.Resources>
<Grid>
<Label Content="123"/>
</Grid>
</UserControl>
这样更改UserControl Foreground会影响所有标签内部(如果他们不覆盖前景设置)
样式可以使用类型名称(Label
)作为键,默认情况下将应用。或者它可以有一些其他密钥,应该明确分配给动态创建的标签
答案 1 :(得分:1)
在UserControl.Resources中,您可以设置如下内容:
<Style TargetType="Label">
<Setter Property="Foreground" Value="#112233" />
</Style>
只要您不给样式添加x:Key元素,它就会应用于UserControl中的所有子标签。