【问题标题】:Styling dynamically added StackPanel child elements样式化动态添加的 StackPanel 子元素
【发布时间】:2010-07-01 11:28:51
【问题描述】:

我有一个 StackPanel,我每 5 分钟动态更改一次内容以显示用户消息。这些消息显示为 TextBlock 或 HyperLinkBut​​ton。我想知道如何/是否可以在 StackPanels 样式中设置适用于孩子的样式。

例如我试过了

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

这可能吗,还是我需要在添加每个 UiElement 之前在代码中设置样式?

【问题讨论】:

    标签: silverlight xaml silverlight-4.0 styles


    【解决方案1】:

    您可以像在 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 元素现在都将应用该样式,但它们会被添加到其中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2012-11-02
      • 2020-01-12
      相关资源
      最近更新 更多