diff --git a/demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml new file mode 100644 index 0000000..b078cba --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml.cs new file mode 100644 index 0000000..40ccf12 --- /dev/null +++ b/demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia.Controls; +using Semi.Avalonia.Demo.ViewModels; + +namespace Semi.Avalonia.Demo.Pages; + +public partial class TabStripDemo : UserControl +{ + public TabStripDemo() + { + InitializeComponent(); + this.DataContext = new TabStripDemoViewModel(); + } +} \ No newline at end of file diff --git a/demo/Semi.Avalonia.Demo/ViewModels/TabStripDemoViewModel.cs b/demo/Semi.Avalonia.Demo/ViewModels/TabStripDemoViewModel.cs new file mode 100644 index 0000000..353fc5f --- /dev/null +++ b/demo/Semi.Avalonia.Demo/ViewModels/TabStripDemoViewModel.cs @@ -0,0 +1,10 @@ +using System.Collections.ObjectModel; +using System.Linq; +using CommunityToolkit.Mvvm.ComponentModel; + +namespace Semi.Avalonia.Demo.ViewModels; + +public class TabStripDemoViewModel : ObservableObject +{ + public ObservableCollection Items => new(Enumerable.Range(1, 10).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 3eb3ccd..2f79f72 100644 --- a/demo/Semi.Avalonia.Demo/Views/MainView.axaml +++ b/demo/Semi.Avalonia.Demo/Views/MainView.axaml @@ -219,6 +219,9 @@ + + + diff --git a/src/Semi.Avalonia/Controls/TabStrip.axaml b/src/Semi.Avalonia/Controls/TabStrip.axaml index 84d569b..54f9b0b 100644 --- a/src/Semi.Avalonia/Controls/TabStrip.axaml +++ b/src/Semi.Avalonia/Controls/TabStrip.axaml @@ -2,108 +2,215 @@ xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:CompileBindings="True"> + + + + + + + + + + + - + - - + + - - - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + - - - - + - - - - - - + Content="{TemplateBinding Content}" + ContentTemplate="{TemplateBinding ContentTemplate}" + CornerRadius="{TemplateBinding CornerRadius}" + FontFamily="{TemplateBinding FontFamily}" + FontWeight="{TemplateBinding FontWeight}" + Foreground="{TemplateBinding Foreground}" /> - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Semi.Avalonia/Styles/TabStrip.axaml b/src/Semi.Avalonia/Styles/TabStrip.axaml new file mode 100644 index 0000000..185f7b7 --- /dev/null +++ b/src/Semi.Avalonia/Styles/TabStrip.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 index 574fa22..5afce03 100644 --- a/src/Semi.Avalonia/Styles/_index.axaml +++ b/src/Semi.Avalonia/Styles/_index.axaml @@ -1,3 +1,4 @@  + \ No newline at end of file