2010-07-01 146 views
0

我有一个StackPanel,我动态地改变每5分钟的内容来显示用户消息。这些消息显示为TextBlock或HyperLinkBut​​ton。我想知道/如果我可以在StackPanels样式中设置一个适用于儿童的样式。样式动态添加StackPanel子元素

E.g.我试过

<Style x:Key="InfoBarStyle" TargetType="StackPanel"> 
    <Setter Property="TextElement.Foreground" Value="WhiteSmoke"/> 
    <Setter Property="TextElement.FontWeight" Value="Bold"/> 
</Style> 

这是可能的还是我需要在代码背后设置样式,然后才添加每个UiElement?

回答

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元素现在将应用该样式但他们被添加到它。

+0

+1作品处理队友,谢谢。 – Fermin 2010-07-01 12:00:03