Я пытаюсь создать свой WPF TabControl. Я в основном хочу, чтобы элемент управления вкладкой имел прозрачный фон с белой рамкой и текстом. Я хочу, чтобы выбранная вкладка имела белый фон и прозрачный текст (или любой цветной текст!). По существу 2 вкладка цвета.WPF Tab Styling
Однако я не могу переопределить выбранный вид вкладки - это отображается как белый. И мои дочерние текстовые поля берут стиль шрифта TabItem. Обратите внимание: на снимке экрана мои ярлыки имеют свой собственный стиль, поэтому не используйте шрифт TabItem.
У меня есть следующий код XAML в месте, чтобы сделать это. В идеале я хочу создать стили, чтобы я мог повторно использовать приложение.
ресурсов Словарь
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008">
<Style x:Key="Tabs" TargetType="TabControl">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="White"/>
</Style>
<Style x:Key="TabItemStyle" TargetType="TabItem">
<Setter Property="Foreground" Value="White" />
<Setter Property="VerticalAlignment" Value="Top" />
<Setter Property="FontSize" Value="16" />
<Setter Property="Background" Value="Transparent"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="True">
<Setter Property="Foreground" Value="Red"/>
<Setter Property="Background" Value="White"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=TabItem}}" Value="False">
<Setter Property="Foreground" Value="LightGray"/>
<Setter Property="Background" Value="Transparent"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
Тогда XAML разметке
<TabControl Style="{StaticResource Tabs}">
<TabItem Header="General" Style="{StaticResource TabItemStyle}">...</TabItem>
<TabItem Header="Details" Style="{StaticResource TabItemStyle}">...</TabItem>
<TabItem Header="Info" Style="{StaticResource TabItemStyle}">...</TabItem>
<TabItem Header="More Stuff..." Style="{StaticResource TabItemStyle}">...</TabItem>
</TabControl>
Как укладывать мои вкладки, чтобы быть и предотвратить детей от размера?
Почему бы не просто установить шаблоны так, как вы хотите, и сделать их собственными, а не просто нацеливать на свойства и триггеры? Возможно, так как вы все равно хотите изменить большинство из них. –