У меня есть небольшая проблема с WPF, которую я не могу понять.
Я пытаюсь настроить ResourceDictionary
, содержащий несколько цветов, кистей и ControlTemplate
записей.
Моя проблема в том, что я пытаюсь установить кисть переднего плана Label
на ресурс в том же файле, и этот бит не работает, и об этом нет сообщений трассировки.
<Color x:Shared="false" x:Key="DefaultForegroundColor" A="255" R="0" G="0" B="0" />
<!--<Color x:Shared="false" x:Key="DefaultForegroundColor" A="255" R="255" G="0" B="0" />-->
<SolidColorBrush x:Shared="false" x:Key="DefaultForegroundBrush" Color="{DynamicResource DefaultForegroundColor}"/>
<Color x:Shared="false" x:Key="HeadingColor" A="255" R="17" G="158" B="218" />
<SolidColorBrush x:Shared="false" x:Key="HeadingBrush" Color="{DynamicResource HeadingColor}"/>
<Style TargetType="{x:Type Label}" x:Key="SectionHeadingStyle">
<Setter Property="FontSize" Value="18"/>
<Setter Property="Foreground" Value="{DynamicResource HeadingBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Label">
<Border BorderThickness="0,0,0,2" BorderBrush="{DynamicResource DefaultForegroundBrush}" HorizontalAlignment="Left">
<ContentPresenter Margin="5"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Цвет границы работает нормально (даже если он не черный), но передний план этикетки остается черным, а не светло-голубым. Любые идеи, что я делаю неправильно?
Спасибо.
ОБНОВЛЕНИЕ Забыл упомянуть, что в дизайнере это тоже хорошо выглядит.
ОБНОВЛЕНИЕ 2 При отслеживании визуального дерева выясняется, что цвет Foreground
проходит большую часть шаблона, пока ContentPresenter
не использует TextBlock
для отображения текста заголовка. TextBlock
остается черным, в то время как ContentPresenter выше имеет приятный оттенок синего, установленный на TextElement.Foreground
. Есть ли что-то еще, что я могу сделать в шаблоне, чтобы придать созданному TextBlock
цвет переднего плана?