2017-05-31 99 views
0

我正在使用MahApps.Metro選項卡控件。我想知道在選項卡處於非活動狀態時是否可以更改標題文本的字體顏色。更改非活動標籤頁眉字體顏色

目前,它是這樣的: enter image description here

我可以通過更改當前標籤字體顏色:

 <Controls:MetroAnimatedSingleRowTabControl.Resources> 
      <SolidColorBrush x:Key="AccentColorBrush" Color="Red"/> 
     </Controls:MetroAnimatedSingleRowTabControl.Resources> 

enter image description here

,但我不能夠改變顏色不活躍標籤。我想將灰色改成其他顏色;比如讓我們說綠色。有沒有可能改變這一點?

回答

1

MahApps.MetroTabItemtemplate使用動態資源與"GrayNormalBrush"鍵時,它的不活動的字體顏色。所以你所需要做的就是提供一個你喜歡的Brush作爲這個關鍵的資源。根據變化的範圍,你想讓你必須選擇一個合適的地方來放置你的畫筆。

改變單一TabItem

要更改無效刷上一個TabItem,把刷子在其資源詞典:

<TabItem> 
    <TabItem.Resource> 
     <SolidColorBrush x:Key="GrayNormalBrush" Color="Red" /> 
    </TabItem.Resources> 
</TabItem> 

改變中的單個TabControl

所有 TabItem小號

修改所有TabItem s TabControl應覆蓋TabItem的默認樣式,把刷子在其資源字典,並把這種風格爲TabControl的資源:

<TabControl> 
    <TabControl.Resources> 
     <!-- It's important to set the BasedOn property so that we 
      override the style rather than redefine it --> 
     <Style TargetType="{x:Type TabItem}" BasedOn="{StaticResource {x:Type TabItem}}"> 
      <Style.Resources> 
       <SolidColorBrush x:Key="GrayNormalBrush" Color="Red" /> 
      </Style.Resources> 
     </Style> 
    </TabControl.Resources> 
</TabControl> 

你也可以移動的風格了層次結構,以擴大其範圍,例如如果您將該樣式作爲Window的資源,則該窗口內的所有TabItem將被修改。

在整個應用程序

這部分更改所有TabItem經證實比只是把這種風格在App.xaml中資源字典麻煩一點。關鍵是這個樣式應該被定義爲MahApps.Metro一個被引用。就我而言,我在MahApps.Metro字典引用的App.xaml和也把這種風格在那裏,第一TabItem完全沒有風格,而下述的人罰款和花花公子。

訣竅是創建一個單獨的文件一本字典,說Resources.xaml,把這種風格出現,並參考來自App.xaml中字典。請注意,字典的引用順序對於此解決方案的工作至關重要:

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> 
      <ResourceDictionary Source="Resources.xaml" /> 
      ... 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 
+0

謝謝。這有幫助。是否也可以對字體進行其他更改?就像使所選標籤的標題字體爲粗體。我嘗試使用,但它改變了標籤內容的字體而不是標籤標題字體。 – ilmenite