我有一个StackPanel,我动态更改每5分钟的内容以显示用户消息。这些消息显示为TextBlock或HyperLinkButton。我想知道如何/如果我可以在StackPanels样式中设置适用于孩子的样式。
E.g。我试过了
<Style x:Key="InfoBarStyle" TargetType="StackPanel">
<Setter Property="TextElement.Foreground" Value="WhiteSmoke"/>
<Setter Property="TextElement.FontWeight" Value="Bold"/>
</Style>
这是可能的还是我需要在添加每个UiElement之前在代码中设置样式?
答案 0 :(得分:2)
您可以在WPF中尽可能利用Silverlight 4.0中的Implicit Styling。诀窍是在定义样式时省略x:Key属性,它将自动应用于定义样式的ResourceDictionary范围内的TargetType的所有元素。
以下是一个例子:
<StackPanel>
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextElement.Foreground" Value="WhiteSmoke"/>
<Setter Property="TextElement.FontWeight" Value="Bold"/>
</Style>
</StackPanel.Resources>
<TextBlock Text="My Message"/>
</StackPanel>
StackPanel中的所有TextBlock元素现在都会应用该样式,但是它们会添加到它中。