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

View File

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