diff --git a/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml
index edb64b9..f62cae8 100644
--- a/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/TabControlDemo.axaml
@@ -11,85 +11,122 @@
x:DataType="vm:TabControlDemoViewModel"
mc:Ignorable="d">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Tab 1
- Tab 2
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Left
+ Bottom
+ Right
+ Top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Themes/TabMenu.axaml b/demo/Semi.Avalonia.Demo/Themes/TabMenu.axaml
deleted file mode 100644
index 43e3b8e..0000000
--- a/demo/Semi.Avalonia.Demo/Themes/TabMenu.axaml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Themes/_index.axaml b/demo/Semi.Avalonia.Demo/Themes/_index.axaml
index 6e47828..cfccca3 100644
--- a/demo/Semi.Avalonia.Demo/Themes/_index.axaml
+++ b/demo/Semi.Avalonia.Demo/Themes/_index.axaml
@@ -4,7 +4,6 @@
-
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/ViewModels/TabControlDemoViewModel.cs b/demo/Semi.Avalonia.Demo/ViewModels/TabControlDemoViewModel.cs
index bbe153e..ee6036e 100644
--- a/demo/Semi.Avalonia.Demo/ViewModels/TabControlDemoViewModel.cs
+++ b/demo/Semi.Avalonia.Demo/ViewModels/TabControlDemoViewModel.cs
@@ -4,12 +4,7 @@ using CommunityToolkit.Mvvm.ComponentModel;
namespace Semi.Avalonia.Demo.ViewModels;
-public class TabControlDemoViewModel: ObservableObject
+public class TabControlDemoViewModel : ObservableObject
{
- public ObservableCollection Items { get; set; }
-
- public TabControlDemoViewModel()
- {
- Items = new ObservableCollection(Enumerable.Range(1, 200).Select(a => "Tab " + a));
- }
+ public ObservableCollection Items => new(Enumerable.Range(1, 200).Select(a => "Tab " + a));
}
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Views/MainView.axaml b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
index 6e4427b..9288411 100644
--- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml
+++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml
@@ -78,10 +78,19 @@
Grid.Row="1"
Margin="8"
Padding="20,0,0,0"
- HorizontalAlignment="Stretch"
TabStripPlacement="Left"
Classes.Dismiss="{Binding #ExpandButton.IsChecked}"
- Theme="{DynamicResource NavigationTab}">
+ Theme="{DynamicResource ScrollLineTabControl}">
+
+
+
+
+
+
+
+
diff --git a/src/Semi.Avalonia/Controls/TabControl.axaml b/src/Semi.Avalonia/Controls/TabControl.axaml
index e37f12d..6710481 100644
--- a/src/Semi.Avalonia/Controls/TabControl.axaml
+++ b/src/Semi.Avalonia/Controls/TabControl.axaml
@@ -2,10 +2,25 @@
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:CompileBindings="True">
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -85,10 +191,15 @@
CornerRadius="{TemplateBinding CornerRadius}">
-
-
+
+
-
+
+
+
-
-
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Controls/TabItem.axaml b/src/Semi.Avalonia/Controls/TabItem.axaml
index 2c44f96..aa900ae 100644
--- a/src/Semi.Avalonia/Controls/TabItem.axaml
+++ b/src/Semi.Avalonia/Controls/TabItem.axaml
@@ -2,132 +2,231 @@
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:CompileBindings="True">
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
-
-
-
+
-
-
-
-
-
-
+ Content="{TemplateBinding Header}"
+ ContentTemplate="{TemplateBinding HeaderTemplate}"
+ CornerRadius="{TemplateBinding CornerRadius}"
+ FontFamily="{TemplateBinding FontFamily}"
+ FontWeight="{TemplateBinding FontWeight}"
+ Foreground="{TemplateBinding Foreground}" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Index.axaml b/src/Semi.Avalonia/Index.axaml
index 334aa54..1f16c58 100644
--- a/src/Semi.Avalonia/Index.axaml
+++ b/src/Semi.Avalonia/Index.axaml
@@ -20,4 +20,6 @@
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/SemiTheme.axaml b/src/Semi.Avalonia/SemiTheme.axaml
index eea19b2..cbf8643 100644
--- a/src/Semi.Avalonia/SemiTheme.axaml
+++ b/src/Semi.Avalonia/SemiTheme.axaml
@@ -21,4 +21,6 @@
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Styles/TabControl.axaml b/src/Semi.Avalonia/Styles/TabControl.axaml
new file mode 100644
index 0000000..eaa7bc6
--- /dev/null
+++ b/src/Semi.Avalonia/Styles/TabControl.axaml
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Styles/_index.axaml b/src/Semi.Avalonia/Styles/_index.axaml
new file mode 100644
index 0000000..574fa22
--- /dev/null
+++ b/src/Semi.Avalonia/Styles/_index.axaml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Dark/TabControl.axaml b/src/Semi.Avalonia/Themes/Dark/TabControl.axaml
index d1981be..de620d4 100644
--- a/src/Semi.Avalonia/Themes/Dark/TabControl.axaml
+++ b/src/Semi.Avalonia/Themes/Dark/TabControl.axaml
@@ -1,2 +1,3 @@
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Dark/TabItem.axaml b/src/Semi.Avalonia/Themes/Dark/TabItem.axaml
index dc8da64..af5e3d0 100644
--- a/src/Semi.Avalonia/Themes/Dark/TabItem.axaml
+++ b/src/Semi.Avalonia/Themes/Dark/TabItem.axaml
@@ -5,6 +5,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/HighContrast/TabControl.axaml b/src/Semi.Avalonia/Themes/HighContrast/TabControl.axaml
index d1981be..bf22944 100644
--- a/src/Semi.Avalonia/Themes/HighContrast/TabControl.axaml
+++ b/src/Semi.Avalonia/Themes/HighContrast/TabControl.axaml
@@ -1,2 +1,3 @@
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/HighContrast/TabItem.axaml b/src/Semi.Avalonia/Themes/HighContrast/TabItem.axaml
index 8e8b0c3..ced4623 100644
--- a/src/Semi.Avalonia/Themes/HighContrast/TabItem.axaml
+++ b/src/Semi.Avalonia/Themes/HighContrast/TabItem.axaml
@@ -7,4 +7,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Light/TabControl.axaml b/src/Semi.Avalonia/Themes/Light/TabControl.axaml
index d1981be..de620d4 100644
--- a/src/Semi.Avalonia/Themes/Light/TabControl.axaml
+++ b/src/Semi.Avalonia/Themes/Light/TabControl.axaml
@@ -1,2 +1,3 @@
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Light/TabItem.axaml b/src/Semi.Avalonia/Themes/Light/TabItem.axaml
index dc8da64..af5e3d0 100644
--- a/src/Semi.Avalonia/Themes/Light/TabItem.axaml
+++ b/src/Semi.Avalonia/Themes/Light/TabItem.axaml
@@ -5,6 +5,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Shared/TabItem.axaml b/src/Semi.Avalonia/Themes/Shared/TabItem.axaml
index bd6b384..9e017ba 100644
--- a/src/Semi.Avalonia/Themes/Shared/TabItem.axaml
+++ b/src/Semi.Avalonia/Themes/Shared/TabItem.axaml
@@ -1,3 +1,4 @@
+
\ No newline at end of file