From f00833368385ef86df6bcc0ecc8715424727c34b Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Tue, 8 Apr 2025 21:13:07 +0800
Subject: [PATCH 1/3] feat: sync with TabControl Themes.
---
src/Semi.Avalonia/Controls/TabStrip.axaml | 245 +++++++++++++++-------
1 file changed, 175 insertions(+), 70 deletions(-)
diff --git a/src/Semi.Avalonia/Controls/TabStrip.axaml b/src/Semi.Avalonia/Controls/TabStrip.axaml
index 84d569b..6828287 100644
--- a/src/Semi.Avalonia/Controls/TabStrip.axaml
+++ b/src/Semi.Avalonia/Controls/TabStrip.axaml
@@ -2,108 +2,213 @@
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
From 28a1336413145f8894a63e0929b4da19289d6c05 Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Wed, 9 Apr 2025 17:15:20 +0800
Subject: [PATCH 2/3] feat: add TabStripDemo.
---
.../Pages/TabStripDemo.axaml | 93 +++++++++++++++++++
.../Pages/TabStripDemo.axaml.cs | 13 +++
.../ViewModels/TabStripDemoViewModel.cs | 10 ++
demo/Semi.Avalonia.Demo/Views/MainView.axaml | 3 +
src/Semi.Avalonia/Controls/TabStrip.axaml | 2 +
5 files changed, 121 insertions(+)
create mode 100644 demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml
create mode 100644 demo/Semi.Avalonia.Demo/Pages/TabStripDemo.axaml.cs
create mode 100644 demo/Semi.Avalonia.Demo/ViewModels/TabStripDemoViewModel.cs
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 6828287..71e6ec6 100644
--- a/src/Semi.Avalonia/Controls/TabStrip.axaml
+++ b/src/Semi.Avalonia/Controls/TabStrip.axaml
@@ -13,6 +13,7 @@
+
+
Date: Wed, 9 Apr 2025 17:20:38 +0800
Subject: [PATCH 3/3] feat: set Margin to 0 for the last TabStripItem.
---
src/Semi.Avalonia/Controls/TabStrip.axaml | 4 ++--
src/Semi.Avalonia/Styles/TabStrip.axaml | 5 +++++
src/Semi.Avalonia/Styles/_index.axaml | 1 +
3 files changed, 8 insertions(+), 2 deletions(-)
create mode 100644 src/Semi.Avalonia/Styles/TabStrip.axaml
diff --git a/src/Semi.Avalonia/Controls/TabStrip.axaml b/src/Semi.Avalonia/Controls/TabStrip.axaml
index 71e6ec6..54f9b0b 100644
--- a/src/Semi.Avalonia/Controls/TabStrip.axaml
+++ b/src/Semi.Avalonia/Controls/TabStrip.axaml
@@ -13,7 +13,7 @@
-
+
-
+
+
+
\ 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