我正在编写一个 WPF 应用程序,并尝试设置 TabItem header 的样式,仅在选择时显示背景颜色更改的边框。问题是,当我添加该样式时,它会弄乱 TabItem 中 TextBlock 项目的样式。我不是 WPF/XAML 专家。下面是我在 TabControl 中使用的样式。我也在使用 MahApps 地铁样式。任何想法将不胜感激。
<TabControl.Resources>
<Style TargetType="TabItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
<Border Name="Border" BorderThickness="1,1,1,0" BorderBrush="Gainsboro" CornerRadius="4,4,0,0" Margin="2,0">
<ContentPresenter x:Name="ContentSite"
VerticalAlignment="Center"
HorizontalAlignment="Center"
ContentSource="Header"
Margin="10,2"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{DynamicResource AccentColorBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
最佳答案
当您为 WPF 控件编写新样式时,如果您没有完全重新设计所有内容,最好让它继承现有的隐式样式。那里可能还有很多你不想丢失的其他东西,看起来就是这样。尝试将 BasedOn
属性设置为隐式 TabItem
样式:
<Style TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
看看这是否有帮助。
关于c# - 仅 WPF TabItem 标题样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41511983/