我有一個小的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>
邊框顏色工作正常(即使它不是黑色),但標籤的前景保持黑色,而不是淺藍色。任何想法我做錯了什麼?
謝謝。
UPDATE 忘了提及,它在設計師也看起來不錯。
UPDATE 2 在偵聽看來該Foreground
顏色使得它最方式通過模板直到ContentPresenter
使用TextBlock
,顯示標題文本的可視化樹。 TextBlock
保持黑色,而上面的ContentPresenter具有很好的藍色陰影,設置爲TextElement.Foreground
。在模板中是否還有其他事情可以爲創建的TextBlock
創建前景色?
嗨Brian。我以前曾經將您的建議表單中的代碼更改爲在另一個(不正確)博客帖子後發佈的'x:Shared'和'DynamicResource'版本。不幸的是意味着我仍然沒有期望的結果。 – GlacialSpoon 2012-08-17 16:34:08
@GlacialSpoon你想要的結果是什麼?我可以理解DynamicResources的需求(皮膚或其他?),但爲什麼不能共享? – 2012-08-17 17:43:58
對不起Brian。爲了澄清,期望的結果是在運行時實際應用於標籤內容的樣式中的前景色。樣式將'HeadingColor'定義爲淡藍色,但結果內容始終爲黑色。在我目前的應用程序中,內容很可能是一個字符串,所以我認爲它會以前景色呈現文本。我對這種方法不感興趣,或者它是靜態的,動態的或其他的。我只是無法讓它爲我的文字着色! :(請說明是否仍然令人困惑 – GlacialSpoon 2012-08-17 23:05:42