2011-11-02 27 views
3

這是一種適用於App.XAML文件中的項目中的所有文本塊的樣式。由文本塊樣式覆蓋的按鈕和Menuitem前景顏色

<Style TargetType="{x:Type TextBlock}"> 
     <Setter Property="Foreground" Value="Orange" /> 
     <Setter Property="VerticalAlignment" Value="Center"/> 
     <Setter Property="HorizontalAlignment" Value="Left"/> 
    </Style> 

但這種風格改變了我的所有菜單項的前景色,在我的項目的按鈕,即使我指定的前景色爲這些控件爲黑色。這個問題的任何解決方案?

我的按鈕XAML低於:

<Button x:Name="BtnEdit" Content="Details" Click="BtnEdit_Click" Margin="10,0,0,0" /> 
+0

您能否爲典型的菜單和/或按鈕顯示XAML? – ChrisF

+0

將按鈕的前景指定爲「TextElement.Foreground」而不是「Foreground」。不包括這個作爲答案,因爲這是一個預感,因爲它可能不是最好的解決方案。 –

+1

是的,因爲它在設計器中正確顯示(按鈕黑色文本) - 但是當應用程序運行時,按鈕文本是橙色的。 – Ricibob

回答

1

從App.xaml中App.Resources爲MainWindow.xaml Window.Resources移動你的風格。
如果你需要你的風格在多個窗口或頁面,然後將其移動到一個單獨的資源字典XAML文件(添加 - >新建 - >世界糧食計劃署 ​​- >資源字典)按這篇文章:
resource dictionarys
合併字典進入Window.Resources而不是Application.Resources,就像這個例子!例如

<Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Dictionary1.xaml" /> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 
+0

在這種情況下,我必須在每個頁面儀式中重複相同的代碼? – sony

+0

我更新了我的答案,使用單獨的資源字典文件 - 我測試了這一點,它的工作原理。如果不清楚如何設置,請告訴我。 – Ricibob