diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml
index f3a9929ca1..a63ac3baae 100644
--- a/api/Avalonia.nupkg.xml
+++ b/api/Avalonia.nupkg.xml
@@ -5821,4 +5821,40 @@
baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+ CP0001
+ T:Avalonia.Controls.AppBarButton
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.AppBarSeparator
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.AppBarToggleButton
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.AppBarButton
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.AppBarSeparator
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.AppBarToggleButton
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml
index 1ea3349129..3ce911d9f8 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml
@@ -15,9 +15,9 @@
-
-
-
+
+
+
@@ -74,7 +74,7 @@
-
@@ -89,20 +89,20 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -111,8 +111,8 @@
BorderBrush="#CCCCCC"
BorderThickness="1"
OverflowButtonVisibility="Collapsed">
-
-
+
+
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarDynamicOverflowPage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarDynamicOverflowPage.xaml
index 2f771ab42e..6d66c19c96 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarDynamicOverflowPage.xaml
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarDynamicOverflowPage.xaml
@@ -61,12 +61,12 @@
ClipToBounds="True">
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml
index 8dbc44e19b..b4728aa918 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml
@@ -64,13 +64,13 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml.cs b/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml.cs
index c2f0b439f0..f82fcbddb9 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarEventsPage.xaml.cs
@@ -141,13 +141,13 @@ namespace ControlCatalog.Pages
private void OnCommandItemClick(object? sender, RoutedEventArgs e)
{
- if (sender is AppBarButton button)
+ if (sender is CommandBarButton button)
AppendLog($"Click, {button.Label}, {DescribePlacement(button)}");
}
- private AppBarButton CreateButton(string label)
+ private CommandBarButton CreateButton(string label)
{
- var button = new AppBarButton
+ var button = new CommandBarButton
{
Label = label,
Icon = new PathIcon
@@ -170,14 +170,14 @@ namespace ControlCatalog.Pages
{
foreach (var item in items)
{
- if (item is AppBarButton button)
+ if (item is CommandBarButton button)
button.Click -= OnCommandItemClick;
}
}
private void AttachItemHandler(ICommandBarElement item)
{
- if (item is not AppBarButton button)
+ if (item is not CommandBarButton button)
return;
button.Click -= OnCommandItemClick;
@@ -191,10 +191,10 @@ namespace ControlCatalog.Pages
return;
var item = items[^1];
- var label = item is AppBarButton button ? button.Label ?? "(unnamed)" : item.GetType().Name;
+ var label = item is CommandBarButton button ? button.Label ?? "(unnamed)" : item.GetType().Name;
- if (item is AppBarButton appBarButton)
- appBarButton.Click -= OnCommandItemClick;
+ if (item is CommandBarButton commandBarButton)
+ commandBarButton.Click -= OnCommandItemClick;
items.RemoveAt(items.Count - 1);
@@ -202,7 +202,7 @@ namespace ControlCatalog.Pages
RefreshState();
}
- private static string DescribePlacement(AppBarButton button)
+ private static string DescribePlacement(CommandBarButton button)
{
return button.IsInOverflow ? "overflow" : "primary";
}
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml
index b83d1c3e57..60c23d9c64 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml
@@ -36,7 +36,7 @@
-
@@ -52,35 +52,35 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml.cs b/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml.cs
index c624ffcad6..9e15c0fb6c 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarFirstLookPage.xaml.cs
@@ -12,13 +12,13 @@ namespace ControlCatalog.Pages
private void OnButtonClick(object? sender, RoutedEventArgs e)
{
- if (sender is AppBarButton btn)
+ if (sender is CommandBarButton btn)
StatusText.Text = $"{btn.Label} clicked";
}
private void OnToggleChanged(object? sender, RoutedEventArgs e)
{
- if (sender is AppBarToggleButton btn)
+ if (sender is CommandBarToggleButton btn)
StatusText.Text = btn.IsChecked == true
? $"{btn.Label} enabled"
: $"{btn.Label} disabled";
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarLabelPositionPage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarLabelPositionPage.xaml
index a1dbea2db1..a4b23542d7 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarLabelPositionPage.xaml
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarLabelPositionPage.xaml
@@ -15,10 +15,10 @@
-
-
-
-
+
+
+
+
@@ -26,10 +26,10 @@
-
-
-
-
+
+
+
+
@@ -37,10 +37,10 @@
-
-
-
-
+
+
+
+
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml
index be3371a8e8..46bcac3fac 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml
@@ -59,13 +59,13 @@
-
-
-
+
+
+
-
-
+
+
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml.cs b/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml.cs
index a0d5f24b7f..ff5ee07f2a 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarOverflowPage.xaml.cs
@@ -42,13 +42,13 @@ namespace ControlCatalog.Pages
private void OnAddPrimary(object? sender, RoutedEventArgs e)
{
_primaryCount++;
- DemoBar.PrimaryCommands.Add(new AppBarButton { Label = $"Cmd {_primaryCount}" });
+ DemoBar.PrimaryCommands.Add(new CommandBarButton { Label = $"Cmd {_primaryCount}" });
}
private void OnAddSecondary(object? sender, RoutedEventArgs e)
{
_secondaryCount++;
- DemoBar.SecondaryCommands.Add(new AppBarButton { Label = $"Sec {_secondaryCount}" });
+ DemoBar.SecondaryCommands.Add(new CommandBarButton { Label = $"Sec {_secondaryCount}" });
}
}
}
diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarTogglePage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarTogglePage.xaml
index d2513038c0..794bd3fcd4 100644
--- a/samples/ControlCatalog/Pages/CommandBar/CommandBarTogglePage.xaml
+++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarTogglePage.xaml
@@ -28,7 +28,7 @@
-
@@ -37,25 +37,25 @@
- AppBarToggleButton supports on/off states for formatting and feature toggles.
+ CommandBarToggleButton supports on/off states for formatting and feature toggles.
-
-
-
-
+
+
-
-
-
+
+
-
-
+
+
-
-
-
+
+
+
diff --git a/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs b/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs
index 7aaf6d22be..e76d605645 100644
--- a/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs
@@ -13,7 +13,7 @@ namespace ControlCatalog.Pages
{
// Overview
("Overview", "First Look", "A CommandBar with primary commands, secondary overflow menu, and custom content area.", () => new CommandBarFirstLookPage()),
- ("Overview", "Toggle Buttons", "AppBarToggleButton for stateful actions like Bold, Italic, and Favorite.", () => new CommandBarTogglePage()),
+ ("Overview", "Toggle Buttons", "CommandBarToggleButton for stateful actions like Bold, Italic, and Favorite.", () => new CommandBarTogglePage()),
// Appearance
("Appearance", "Label Positions", "Configure label position: Bottom (default), Right, or Collapsed (icon only).", () => new CommandBarLabelPositionPage()),
diff --git a/samples/ControlCatalog/Pages/ContentPage/ContentPageCommandBarPage.xaml.cs b/samples/ControlCatalog/Pages/ContentPage/ContentPageCommandBarPage.xaml.cs
index 07bdbb52a2..3bb6b30082 100644
--- a/samples/ControlCatalog/Pages/ContentPage/ContentPageCommandBarPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/ContentPage/ContentPageCommandBarPage.xaml.cs
@@ -78,7 +78,7 @@ namespace ControlCatalog.Pages
private void OnAddPrimary(object? sender, RoutedEventArgs e)
{
_itemCounter++;
- var btn = new AppBarButton { Label = $"Action {_itemCounter}" };
+ var btn = new CommandBarButton { Label = $"Action {_itemCounter}" };
if (UseIconCheck.IsChecked == true)
{
var preset = IconPresets[(_itemCounter - 1) % IconPresets.Length];
@@ -93,13 +93,13 @@ namespace ControlCatalog.Pages
private void OnAddSecondary(object? sender, RoutedEventArgs e)
{
_itemCounter++;
- _secondaryItems.Add(new AppBarButton { Label = $"Item {_itemCounter}" });
+ _secondaryItems.Add(new CommandBarButton { Label = $"Item {_itemCounter}" });
RebuildCommandBar();
}
private void OnAddSeparator(object? sender, RoutedEventArgs e)
{
- _primaryItems.Add(new AppBarSeparator());
+ _primaryItems.Add(new CommandBarSeparator());
RebuildCommandBar();
}
@@ -177,26 +177,26 @@ namespace ControlCatalog.Pages
foreach (var item in _primaryItems)
{
- if (item is AppBarButton btn)
+ if (item is CommandBarButton btn)
{
PathIcon? icon = null;
if (btn.Icon is PathIcon src)
icon = new PathIcon { Data = src.Data };
- commandBar.PrimaryCommands.Add(new AppBarButton
+ commandBar.PrimaryCommands.Add(new CommandBarButton
{
Label = btn.Label,
Icon = icon,
IsCompact = btn.IsCompact,
});
}
- else if (item is AppBarSeparator)
- commandBar.PrimaryCommands.Add(new AppBarSeparator());
+ else if (item is CommandBarSeparator)
+ commandBar.PrimaryCommands.Add(new CommandBarSeparator());
}
foreach (var item in _secondaryItems)
{
- if (item is AppBarButton btn)
- commandBar.SecondaryCommands.Add(new AppBarButton { Label = btn.Label });
+ if (item is CommandBarButton btn)
+ commandBar.SecondaryCommands.Add(new CommandBarButton { Label = btn.Label });
}
if (_position == "Top")
@@ -204,7 +204,7 @@ namespace ControlCatalog.Pages
else
NavigationPage.SetBottomCommandBar(activePage, commandBar);
- var primaryCount = _primaryItems.Count(i => i is AppBarButton);
+ var primaryCount = _primaryItems.Count(i => i is CommandBarButton);
var secondaryCount = _secondaryItems.Count;
StatusText.Text = $"{primaryCount} primary, {secondaryCount} secondary ({_position})";
}
diff --git a/samples/ControlCatalog/Pages/NavigationPage/NavigationPageToolbarPage.xaml.cs b/samples/ControlCatalog/Pages/NavigationPage/NavigationPageToolbarPage.xaml.cs
index c141f47781..724f8de84a 100644
--- a/samples/ControlCatalog/Pages/NavigationPage/NavigationPageToolbarPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/NavigationPage/NavigationPageToolbarPage.xaml.cs
@@ -49,7 +49,7 @@ namespace ControlCatalog.Pages
private void OnAddPrimary(object? sender, RoutedEventArgs e)
{
_itemCount++;
- _rootCommandBar.PrimaryCommands.Add(new AppBarButton
+ _rootCommandBar.PrimaryCommands.Add(new CommandBarButton
{
Label = $"Item {_itemCount}",
Icon = new PathIcon { Data = (Geometry)this.FindResource("AddIcon")! }
@@ -60,7 +60,7 @@ namespace ControlCatalog.Pages
private void OnAddSecondary(object? sender, RoutedEventArgs e)
{
_itemCount++;
- _rootCommandBar.SecondaryCommands.Add(new AppBarButton
+ _rootCommandBar.SecondaryCommands.Add(new CommandBarButton
{
Label = $"Secondary {_itemCount}"
});
@@ -69,13 +69,13 @@ namespace ControlCatalog.Pages
private void OnAddPrimarySeparator(object? sender, RoutedEventArgs e)
{
- _rootCommandBar.PrimaryCommands.Add(new AppBarSeparator());
+ _rootCommandBar.PrimaryCommands.Add(new CommandBarSeparator());
UpdateStatus();
}
private void OnAddSecondarySeparator(object? sender, RoutedEventArgs e)
{
- _rootCommandBar.SecondaryCommands.Add(new AppBarSeparator());
+ _rootCommandBar.SecondaryCommands.Add(new CommandBarSeparator());
UpdateStatus();
}
@@ -125,13 +125,13 @@ namespace ControlCatalog.Pages
{
PrimaryCommands =
{
- new AppBarButton { Label = "Search", Icon = new PathIcon { Data = (Geometry)this.FindResource("SearchIcon")! } },
- new AppBarButton { Label = "Share", Icon = new PathIcon { Data = (Geometry)this.FindResource("ShareIcon")! } },
- new AppBarButton { Label = "Edit", Icon = new PathIcon { Data = (Geometry)this.FindResource("EditIcon")! } },
+ new CommandBarButton { Label = "Search", Icon = new PathIcon { Data = (Geometry)this.FindResource("SearchIcon")! } },
+ new CommandBarButton { Label = "Share", Icon = new PathIcon { Data = (Geometry)this.FindResource("ShareIcon")! } },
+ new CommandBarButton { Label = "Edit", Icon = new PathIcon { Data = (Geometry)this.FindResource("EditIcon")! } },
},
SecondaryCommands =
{
- new AppBarButton { Label = "Delete", Icon = new PathIcon { Data = (Geometry)this.FindResource("DeleteIcon")! } }
+ new CommandBarButton { Label = "Delete", Icon = new PathIcon { Data = (Geometry)this.FindResource("DeleteIcon")! } }
}
};
}
diff --git a/src/Avalonia.Controls/CommandBar/CommandBar.cs b/src/Avalonia.Controls/CommandBar/CommandBar.cs
index 392ffb7ddc..d493bce304 100644
--- a/src/Avalonia.Controls/CommandBar/CommandBar.cs
+++ b/src/Avalonia.Controls/CommandBar/CommandBar.cs
@@ -516,7 +516,7 @@ namespace Avalonia.Controls
int primaryNonSepCount = 0;
foreach (var item in PrimaryCommands)
- if (item is not AppBarSeparator)
+ if (item is not CommandBarSeparator)
primaryNonSepCount++;
const double overflowButtonWidth = 48;
@@ -554,7 +554,7 @@ namespace Avalonia.Controls
for (var i = 0; i < prioritized.Count; i++)
{
var idx = prioritized[i].Index;
- if (PrimaryCommands[idx] is AppBarSeparator)
+ if (PrimaryCommands[idx] is CommandBarSeparator)
visibleIndices.Add(idx);
else if (nonSeparatorCount < maxItems)
{
@@ -596,8 +596,8 @@ namespace Avalonia.Controls
private static int GetDynamicOverflowOrder(ICommandBarElement element) => element switch
{
- AppBarButton b => b.DynamicOverflowOrder,
- AppBarToggleButton t => t.DynamicOverflowOrder,
+ CommandBarButton b => b.DynamicOverflowOrder,
+ CommandBarToggleButton t => t.DynamicOverflowOrder,
_ => 0
};
@@ -615,9 +615,9 @@ namespace Avalonia.Controls
{
element.IsCompact = DefaultLabelPosition == CommandBarDefaultLabelPosition.Collapsed;
- if (element is AppBarButton abb)
+ if (element is CommandBarButton abb)
abb.LabelPosition = DefaultLabelPosition;
- else if (element is AppBarToggleButton atb)
+ else if (element is CommandBarToggleButton atb)
atb.LabelPosition = DefaultLabelPosition;
}
diff --git a/src/Avalonia.Controls/CommandBar/AppBarButton.cs b/src/Avalonia.Controls/CommandBar/CommandBarButton.cs
similarity index 80%
rename from src/Avalonia.Controls/CommandBar/AppBarButton.cs
rename to src/Avalonia.Controls/CommandBar/CommandBarButton.cs
index 9e251f77bf..776f4edc47 100644
--- a/src/Avalonia.Controls/CommandBar/AppBarButton.cs
+++ b/src/Avalonia.Controls/CommandBar/CommandBarButton.cs
@@ -3,49 +3,49 @@ namespace Avalonia.Controls
///
/// A button for use in a .
///
- public class AppBarButton : Button, ICommandBarElement
+ public class CommandBarButton : Button, ICommandBarElement
{
- static AppBarButton()
+ static CommandBarButton()
{
- ForegroundProperty.Changed.AddClassHandler((x, _) => x.UpdateIconForeground());
- IconProperty.Changed.AddClassHandler((x, _) => x.UpdateIconForeground());
+ ForegroundProperty.Changed.AddClassHandler((x, _) => x.UpdateIconForeground());
+ IconProperty.Changed.AddClassHandler((x, _) => x.UpdateIconForeground());
}
///
/// Defines the property.
///
public static readonly StyledProperty LabelProperty =
- AvaloniaProperty.Register(nameof(Label));
+ AvaloniaProperty.Register(nameof(Label));
///
/// Defines the property.
///
public static readonly StyledProperty