탭이 활성화 될 때마다 TabItem 텍스트의 전경을 변경하려고합니다. 난 콘텐츠의 유형이 탭에 표시되고 변경 될 때까지 잘 작동 한 다음 사용하던 : 없음중첩 된 텍스트로 WPF TabItem의 텍스트 전경을 어떻게 변경합니까?
<TabControl Style="{DynamicResource SidebarTabControl}">
<TabItem Style="{DynamicResource SidebarTab}">
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<Image Height="16" Source="..\..\Icons\cog.png" />
<TextBlock Text="TabItem" Margin="5,0,0,0" VerticalAlignment="Center" />
</StackPanel>
</TabItem.Header>
</TabItem>
</TabControl>
텍스트의 전경을 : 나는에 TabItem의 변경
<TabControl Style="{DynamicResource SidebarTabControl}">
<TabItem Header="TabItem" Style="{DynamicResource SidebarTab}" />
</TabControl>
<Style x:Key="SidebarTabForegroundStyleSelected">
<Setter Property="TextBlock.Foreground" Value="White" />
</Style>
<Style x:Key="SidebarTabForegroundStyle">
<Setter Property="TextBlock.Foreground" Value="Black" />
</Style>
<Style x:Key="SidebarTab" TargetType="TabItem">
<Setter Property="Padding" Value="10,12,2,12" />
<Setter Property="BorderThickness" Value="0,1,0,1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Border Padding="{TemplateBinding Padding}"
Name="tab"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{StaticResource SidebarTabBorderBrush}"
SnapsToDevicePixels="True">
<ContentPresenter Style="{StaticResource SidebarTabForegroundStyle}" Name="content" ContentSource="Header" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="tab" Property="Background" Value="{StaticResource SidebarTabBackgroundBrushSelected}" />
<Setter TargetName="tab" Property="BorderBrush" Value="{StaticResource SidebarTabBorderBrushSelected}" />
<Setter TargetName="content" Property="Style" Value="{StaticResource SidebarTabForegroundStyleSelected}" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter TargetName="tab" Property="Background" Value="{StaticResource SidebarTabBackgroundBrush}" />
<Setter TargetName="tab" Property="BorderBrush" Value="{StaticResource SidebarTabBorderBrush}" />
<Setter TargetName="content" Property="Style" Value="{StaticResource SidebarTabForegroundStyle}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
탭을 선택하면 더 이상 흰색으로 변하고 더 이상 탭을 선택하지 않으면 검은 색으로 바뀝니다. 다른 모든 것은 여전히 올바르게 작동합니다.
위의 XAML에서 전경색을 변경하는 방법이 있는지 알고 있습니까?
<Style x:Key="SidebarTabForegroundStyleSelected"> <Setter Property="TextBox.Foreground" Value="White" /> </Style> <Style x:Key="SidebarTabForegroundStyle"> <Setter Property="TextBox.Foreground" Value="Black" /> </Style>
당신은 TextBlock.Foreground
또한 TextElement.Foreground 또는 설정 될 필요가 있기 때문에, : 잘못된 속성을 설정하고 있기 때문에
그것은 문제처럼 보인다
가 된 ContentPresenter에 스타일을 제거, 그것은 당신의 트리거를 무시 것 : http://msdn.microsoft.com/en-us/ library/ms743230.aspx – rmoore
감사합니다. 귀하의 질문은 제가 물어볼 때와 비슷한 질문에 대한 대답을 도왔습니다. – IbrarMumtaz