13
我設置的TabItem的背景顏色在XAML爲紅色,但是當我運行它,並在它懸停或選擇它,它變回了默認的灰色尋找TabItem的背景顏色的變化。只有在選中其他tabitem時它才能正確顯示。我如何始終保持紅色。謝謝!WPF - 當TabItem的選擇或將鼠標懸停在
我設置的TabItem的背景顏色在XAML爲紅色,但是當我運行它,並在它懸停或選擇它,它變回了默認的灰色尋找TabItem的背景顏色的變化。只有在選中其他tabitem時它才能正確顯示。我如何始終保持紅色。謝謝!WPF - 當TabItem的選擇或將鼠標懸停在
Here is example of TabItem ControlTemplate
它複製到你的資源和設置,無論你需要的紅色爲背景。
樣品
<Window x:Class="TestCustomTab.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300">
<Window.Resources>
<SolidColorBrush x:Key="RedBrush" Color="Red"/>
<SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />
<SolidColorBrush x:Key="GreenBrush" Color="Green" />
<SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />
<SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />
<SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid>
<Border
Name="Border"
Margin="0,0,-4,0"
Background="{StaticResource RedBrush}"
BorderBrush="{StaticResource SolidBorderBrush}"
BorderThickness="1,1,1,1"
CornerRadius="2,12,0,0" >
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="12,2,12,2"
RecognizesAccessKey="True"/>
</Border>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Panel.ZIndex" Value="100" />
<Setter TargetName="Border" Property="Background" Value="{StaticResource GreenBrush}" />
<Setter TargetName="Border" Property="BorderThickness" Value="1,1,1,0" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackgroundBrush}" />
<Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource DisabledBorderBrush}" />
<Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<TabControl>
<TabItem Header="MyTabItem" />
<TabItem Header="MyTabItem" />
</TabControl>
</Grid>
</Window>
創建測試WPF項目和粘貼示例代碼,而不是Window1.xaml代碼。
你能告訴我一個簡單的例子。謝謝! – TCoder 2010-07-20 11:54:45
檢查與樣本更新。 – 2010-07-20 12:08:45
很棒!謝謝! – TCoder 2010-07-20 12:37:43