Стилизация динамически добавленных дочерних элементов StackPanel - PullRequest
0 голосов
/ 01 июля 2010

У меня есть StackPanel, который я динамически меняю содержимое каждые 5 минут, чтобы показать пользовательские сообщения. Эти сообщения отображаются как TextBlock или HyperLinkButton. Мне интересно, как / если я могу установить стиль в стиле StackPanels, который будет применяться к детям.

например. Я пробовал

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

Возможно ли это, или мне нужно установить стиль в коде перед добавлением каждого UiElement?

1 Ответ

2 голосов
/ 01 июля 2010

Вы можете воспользоваться Неявным стилем в Silverlight 4.0, как и в WPF.Хитрость заключается в том, чтобы пропустить свойство x: Key при определении стиля, и оно автоматически будет применено ко всем элементам TargetType в области ResourceDictionary, где вы определяете стиль.

Вот пример:

 <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>

Все элементы TextBlock внутри StackPanel теперь будут применять этот стиль, однако они будут добавлены к нему.

...