feat: enhance TabItem styles with new padding and alignment properties

This commit is contained in:
Dong Bin
2025-04-03 20:20:47 +08:00
parent 09a070e3a9
commit 74071f48fe
2 changed files with 26 additions and 12 deletions

View File

@@ -3,10 +3,11 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:CompileBindings="True">
<Design.PreviewWith>
<StackPanel Width="400" Height="400" Margin="20">
<TabControl
Theme="{DynamicResource LineTabControl}"
TabStripPlacement="Top">
<StackPanel
Width="400"
Height="400"
Margin="20">
<TabControl TabStripPlacement="Top" Theme="{DynamicResource LineTabControl}">
<TabItem Header="文档">
<TextBlock Text="Content1" />
</TabItem>
@@ -30,15 +31,15 @@
Padding="{TemplateBinding Padding}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
FontFamily="{TemplateBinding FontFamily}"
FontWeight="{TemplateBinding FontWeight}"
Foreground="{TemplateBinding Foreground}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}" />
Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
CornerRadius="{TemplateBinding CornerRadius}"
FontFamily="{TemplateBinding FontFamily}"
FontWeight="{TemplateBinding FontWeight}"
Foreground="{TemplateBinding Foreground}" />
</ControlTemplate>
</Setter>
@@ -76,9 +77,11 @@
<Style Selector="^[TabStripPlacement=Top]">
<Setter Property="BorderThickness" Value="0 0 0 2" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style Selector="^[TabStripPlacement=Bottom]">
<Setter Property="BorderThickness" Value="0 2 0 0" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
<Style Selector="^[TabStripPlacement=Left]">
<Setter Property="BorderThickness" Value="2 0 0 0" />
@@ -142,7 +145,6 @@
x:Key="CardTabItem"
BasedOn="{StaticResource BaseTabItem}"
TargetType="TabItem">
<Setter Property="Padding" Value="12 8" />
<Setter Property="BorderBrush" Value="{DynamicResource TabControlSeparatorBorderBrush}" />
<Style Selector="^:selected /template/ ContentPresenter#PART_HeaderPresenter">
@@ -160,6 +162,9 @@
<Style Selector="^[TabStripPlacement=Top]">
<Setter Property="Margin" Value="0 0 8 0" />
<Setter Property="MinHeight" Value="{DynamicResource TabItemCardDefaultHeight}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Padding" Value="12 0" />
<Setter Property="CornerRadius" Value="3 3 0 0" />
<Style Selector="^:selected">
<Setter Property="BorderThickness" Value="1 1 1 0" />
@@ -167,6 +172,9 @@
</Style>
<Style Selector="^[TabStripPlacement=Bottom]">
<Setter Property="Margin" Value="0 0 8 0" />
<Setter Property="MinHeight" Value="{DynamicResource TabItemCardDefaultHeight}" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Padding" Value="12 0" />
<Setter Property="CornerRadius" Value="0 0 3 3" />
<Style Selector="^:selected">
<Setter Property="BorderThickness" Value="1 0 1 1" />
@@ -174,6 +182,7 @@
</Style>
<Style Selector="^[TabStripPlacement=Left]">
<Setter Property="Margin" Value="0 0 0 8" />
<Setter Property="Padding" Value="12 8" />
<Setter Property="CornerRadius" Value="3 0 0 3" />
<Style Selector="^:selected">
<Setter Property="BorderThickness" Value="1 1 0 1" />
@@ -181,6 +190,7 @@
</Style>
<Style Selector="^[TabStripPlacement=Right]">
<Setter Property="Margin" Value="0 0 0 8" />
<Setter Property="Padding" Value="12 8" />
<Setter Property="CornerRadius" Value="0 3 3 0" />
<Style Selector="^:selected">
<Setter Property="BorderThickness" Value="0 1 1 1" />
@@ -192,7 +202,6 @@
x:Key="ButtonTabItem"
BasedOn="{StaticResource BaseTabItem}"
TargetType="TabItem">
<Setter Property="Padding" Value="12 8" />
<Setter Property="CornerRadius" Value="{DynamicResource SemiBorderRadiusSmall}" />
<Style Selector="^:selected /template/ ContentPresenter#PART_HeaderPresenter">
@@ -211,9 +220,13 @@
<Style Selector="^[TabStripPlacement=Top], ^[TabStripPlacement=Bottom]">
<Setter Property="TabItem.Margin" Value="0 0 8 0" />
<Setter Property="TabItem.VerticalContentAlignment" Value="Center" />
<Setter Property="TabItem.MinHeight" Value="{DynamicResource TabItemCardDefaultHeight}" />
<Setter Property="TabItem.Padding" Value="12 0" />
</Style>
<Style Selector="^[TabStripPlacement=Left], ^[TabStripPlacement=Right]">
<Setter Property="TabItem.Margin" Value="0 0 0 8" />
<Setter Property="TabItem.Padding" Value="12 8" />
</Style>
</ControlTheme>
</ResourceDictionary>

View File

@@ -1,3 +1,4 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StaticResource x:Key="TabItemSelectedFontWeight" ResourceKey="SemiFontWeightBold" />
<StaticResource x:Key="TabItemCardDefaultHeight" ResourceKey="SemiHeightControlDefault"></StaticResource>
</ResourceDictionary>