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