我喜歡MahApps Metro for WPF的很多東西,還有一些我不太喜歡。其中之一是Metro選項卡風格,所以我試圖調整它。或者寫我自己的,真的。Metro(MahApps)WPF:覆蓋TabItem風格
我的問題是,雖然我可以創建一個選項卡控件樣式,我似乎無法重寫TabItem樣式。我已經開始簡單了:只要是紅色的,靜態文本,不管有什麼。但我甚至無法做到這一點。它一直使用Metro風格。
(綁定是通過Caliburn.Micro。)
ShellView.xaml:
<TabControl Style="{StaticResource TabControlStyle}" DockPanel.Dock="Top"
x:Name="AvailableTabs">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayName}" />
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
內部的App.xaml:
<ResourceDictionary Source="Resources/CustomControls.xaml" />
<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<!-- Accent and AppTheme setting -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
的TabControl /項目樣式:
<Style TargetType="TabItem" BasedOn="{StaticResource MetroTabItem}">
<Setter Property="Background" Value="Red" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<TextBlock Text="Tab" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
的TabControl的風格絕對是工作 - 標籤和內容之間的水平線條的存在就足以證明了這一點。我也嘗試在樣式中使用{DynamicResource WhiteBrush}
(來自mahapps),看看它是否可能找不到mahapps資源,但工作得很好。但標籤本身仍然使用Metro風格。
我在做什麼錯?這讓我瘋狂,而且我不能動搖我正在做一些既簡單又愚蠢的事情。 :)
(另外,我嘗試添加BasedOn={StaticResource MetroTabItem}
到TabItem的風格,但這並不能工作。)
這做到了。謝謝! –