From dd5f5182fa6aea12c759d20b7d693c5e7199b59d Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Thu, 12 Mar 2026 15:56:39 +0800
Subject: [PATCH] fix CommandBar issues (#763)
* feat: extract shared theme from AppBarButton & AppBarToggleButton.
* feat: enhance CommandBar with dynamic overflow and adjustable width.
* fix: fix Width in IsCompact mode.
---
.../Pages/CommandBarDemo.axaml | 30 +-
src/Semi.Avalonia/Controls/CommandBar.axaml | 351 ++++++++----------
.../Themes/Shared/CommandBar.axaml | 9 +-
3 files changed, 168 insertions(+), 222 deletions(-)
diff --git a/demo/Semi.Avalonia.Demo/Pages/CommandBarDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/CommandBarDemo.axaml
index d67d1b6..5ded044 100644
--- a/demo/Semi.Avalonia.Demo/Pages/CommandBarDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/CommandBarDemo.axaml
@@ -12,8 +12,8 @@
-
-
+
+
+
+
-
+
@@ -59,25 +64,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Controls/CommandBar.axaml b/src/Semi.Avalonia/Controls/CommandBar.axaml
index 4f15503..bb216be 100644
--- a/src/Semi.Avalonia/Controls/CommandBar.axaml
+++ b/src/Semi.Avalonia/Controls/CommandBar.axaml
@@ -1,36 +1,53 @@
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:collections="clr-namespace:Avalonia.Collections;assembly=Avalonia.Base">
-
-
-
+
+
+
+
+
+
+ Bottom
+ Collapsed
+ Right
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
+ Spacing="{DynamicResource AppBarButtonPanelSpacing}"
+ HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
+ VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
+ Foreground="{TemplateBinding Foreground}">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
-
+
-
-
-
-
-
+
+
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
+
-
+
-
-
-
+
+
@@ -325,18 +295,12 @@
-
+ Icon="{DynamicResource CommandBarOverflowButtonGlyph}"
+ IsCompact="True"
+ IsVisible="{TemplateBinding IsOverflowButtonVisible}" />
+ CornerRadius="{DynamicResource CommandBarOverflowCornerRadius}">
+
-
+
@@ -392,15 +360,4 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Semi.Avalonia/Themes/Shared/CommandBar.axaml b/src/Semi.Avalonia/Themes/Shared/CommandBar.axaml
index 81f4f45..81ef40d 100644
--- a/src/Semi.Avalonia/Themes/Shared/CommandBar.axaml
+++ b/src/Semi.Avalonia/Themes/Shared/CommandBar.axaml
@@ -1,10 +1,10 @@
- 68
+ 64
40
40
- 20
8 4
+ 4
36
@@ -22,8 +22,11 @@
+ 16
+ 400
+ 600
0 4
- 160
+ 8