2017-08-02 31 views
-2

我設置的自定義顏色,以文本框的前景財產,如下圖所示WPF-前景色不是OS主題變化而變化

<TextBlock x:Name="lblTitle" FontSize="13" Text="abx" Foreground="#FF003399"/> 

的問題是,當OS主題得到改變前景色不根據os主題進行更改。所以任何人都知道如何解決它,在此先感謝。

+0

如果你重寫顏色,你爲什麼期望它隨着操作系統主題而改變? –

+0

我有這樣的要求,對於正常的主題,上面的顏色應該設置,如果os主題改變,那麼顏色也應該根據主題 – Raghva

+0

改變看看'ResourceDictionary.ThemeDictionaries'和'ThemeResource'。 – grek40

回答

0

如果你想讓WPF應用程序使用系統(操作系統主題)的顏色,你應該使用SystemColors class

<ControlTemplate TargetType="Button"> 
    <Grid> 
     <Border Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> 
     <ContentPresenter /> 
     </Border> 
    </Grid> 
    </ControlTemplate> 

如果要使用不同的顏色時,默認主題已被選定,你可以使用一個ValueConverter改變顏色:使得WPF按鈕使用控制刷鑰匙作爲背景色的

例只有當系統顏色是默認值時。

+0

Yaa我試過這個,但我不想要SystemColors.ControlBrushKey顏色。對於正常的主題,應該設置上面的顏色,如果os主題改變了,那麼顏色也應該根據主題 – Raghva

+0

@Raghva查看我的編輯進行更改。當'SystemColors.ControlBrushKey'爲默認值時,您可以使用僅提供自定義顏色'#FF003399'的值轉換器。 –

+0

我看到了價值轉換器,但我不明白它對我有多大用處 – Raghva