From 94c809f84eef0dbb08f84ce11ddbee3cffdd93dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez?= Date: Mon, 30 Mar 2026 16:18:25 +0200 Subject: [PATCH] Rename AppBar controls (#21041) * Renamed AppBar buttons and separator * CommandBarSeparator inherit from Separator * Added suppressions --- api/Avalonia.nupkg.xml | 36 ++++ .../CommandBarCustomizationPage.xaml | 24 +-- .../CommandBarDynamicOverflowPage.xaml | 12 +- .../CommandBar/CommandBarEventsPage.xaml | 10 +- .../CommandBar/CommandBarEventsPage.xaml.cs | 18 +- .../CommandBar/CommandBarFirstLookPage.xaml | 56 +++--- .../CommandBarFirstLookPage.xaml.cs | 4 +- .../CommandBarLabelPositionPage.xaml | 24 +-- .../CommandBar/CommandBarOverflowPage.xaml | 10 +- .../CommandBar/CommandBarOverflowPage.xaml.cs | 4 +- .../CommandBar/CommandBarTogglePage.xaml | 28 +-- .../Pages/CommandBarPage.xaml.cs | 2 +- .../ContentPageCommandBarPage.xaml.cs | 20 +- .../NavigationPageToolbarPage.xaml.cs | 16 +- .../CommandBar/CommandBar.cs | 12 +- .../{AppBarButton.cs => CommandBarButton.cs} | 20 +- ...BarSeparator.cs => CommandBarSeparator.cs} | 8 +- ...gleButton.cs => CommandBarToggleButton.cs} | 20 +- .../Controls/CommandBar.xaml | 38 ++-- .../Controls/NavigationPage.xaml | 4 +- .../Controls/CommandBar.xaml | 28 +-- .../CommandBarTests.cs | 182 +++++++++--------- .../Controls/CommandBarTests.cs | 16 +- .../Controls/ContentPageTests.cs | 8 +- 24 files changed, 319 insertions(+), 281 deletions(-) rename src/Avalonia.Controls/CommandBar/{AppBarButton.cs => CommandBarButton.cs} (80%) rename src/Avalonia.Controls/CommandBar/{AppBarSeparator.cs => CommandBarSeparator.cs} (81%) rename src/Avalonia.Controls/CommandBar/{AppBarToggleButton.cs => CommandBarToggleButton.cs} (79%) 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 IconProperty = - AvaloniaProperty.Register(nameof(Icon)); + AvaloniaProperty.Register(nameof(Icon)); /// /// Defines the property. /// public static readonly StyledProperty IsCompactProperty = - AvaloniaProperty.Register(nameof(IsCompact)); + AvaloniaProperty.Register(nameof(IsCompact)); /// /// Defines the property. /// public static readonly StyledProperty DynamicOverflowOrderProperty = - AvaloniaProperty.Register(nameof(DynamicOverflowOrder)); + AvaloniaProperty.Register(nameof(DynamicOverflowOrder)); /// /// Defines the property. /// public static readonly StyledProperty LabelPositionProperty = - AvaloniaProperty.Register(nameof(LabelPosition), CommandBarDefaultLabelPosition.Bottom); + AvaloniaProperty.Register(nameof(LabelPosition), CommandBarDefaultLabelPosition.Bottom); /// /// Defines the property. /// public static readonly StyledProperty IsInOverflowProperty = - AvaloniaProperty.Register(nameof(IsInOverflow)); + AvaloniaProperty.Register(nameof(IsInOverflow)); /// /// Gets or sets the text label for the button. diff --git a/src/Avalonia.Controls/CommandBar/AppBarSeparator.cs b/src/Avalonia.Controls/CommandBar/CommandBarSeparator.cs similarity index 81% rename from src/Avalonia.Controls/CommandBar/AppBarSeparator.cs rename to src/Avalonia.Controls/CommandBar/CommandBarSeparator.cs index 53c114528f..16f3868441 100644 --- a/src/Avalonia.Controls/CommandBar/AppBarSeparator.cs +++ b/src/Avalonia.Controls/CommandBar/CommandBarSeparator.cs @@ -1,23 +1,21 @@ -using Avalonia.Controls.Primitives; - namespace Avalonia.Controls { /// /// A visual separator for use in a . /// - public class AppBarSeparator : TemplatedControl, ICommandBarElement + public class CommandBarSeparator : Separator, ICommandBarElement { /// /// Defines the property. /// public static readonly StyledProperty IsCompactProperty = - AvaloniaProperty.Register(nameof(IsCompact)); + AvaloniaProperty.Register(nameof(IsCompact)); /// /// Defines the property. /// public static readonly StyledProperty IsInOverflowProperty = - AvaloniaProperty.Register(nameof(IsInOverflow)); + AvaloniaProperty.Register(nameof(IsInOverflow)); /// /// Gets or sets whether the separator is in compact mode. diff --git a/src/Avalonia.Controls/CommandBar/AppBarToggleButton.cs b/src/Avalonia.Controls/CommandBar/CommandBarToggleButton.cs similarity index 79% rename from src/Avalonia.Controls/CommandBar/AppBarToggleButton.cs rename to src/Avalonia.Controls/CommandBar/CommandBarToggleButton.cs index 2476e3cb93..6d7ce4b61e 100644 --- a/src/Avalonia.Controls/CommandBar/AppBarToggleButton.cs +++ b/src/Avalonia.Controls/CommandBar/CommandBarToggleButton.cs @@ -5,49 +5,49 @@ namespace Avalonia.Controls /// /// A toggle button for use in a . /// - public class AppBarToggleButton : ToggleButton, ICommandBarElement + public class CommandBarToggleButton : ToggleButton, ICommandBarElement { - static AppBarToggleButton() + static CommandBarToggleButton() { - 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 IconProperty = - AvaloniaProperty.Register(nameof(Icon)); + AvaloniaProperty.Register(nameof(Icon)); /// /// Defines the property. /// public static readonly StyledProperty IsCompactProperty = - AvaloniaProperty.Register(nameof(IsCompact)); + AvaloniaProperty.Register(nameof(IsCompact)); /// /// Defines the property. /// public static readonly StyledProperty DynamicOverflowOrderProperty = - AvaloniaProperty.Register(nameof(DynamicOverflowOrder)); + AvaloniaProperty.Register(nameof(DynamicOverflowOrder)); /// /// Defines the property. /// public static readonly StyledProperty LabelPositionProperty = - AvaloniaProperty.Register(nameof(LabelPosition), CommandBarDefaultLabelPosition.Bottom); + AvaloniaProperty.Register(nameof(LabelPosition), CommandBarDefaultLabelPosition.Bottom); /// /// Defines the property. /// public static readonly StyledProperty IsInOverflowProperty = - AvaloniaProperty.Register(nameof(IsInOverflow)); + AvaloniaProperty.Register(nameof(IsInOverflow)); /// /// Gets or sets the text label for the button. diff --git a/src/Avalonia.Themes.Fluent/Controls/CommandBar.xaml b/src/Avalonia.Themes.Fluent/Controls/CommandBar.xaml index 45ad19cb93..8692a6153f 100644 --- a/src/Avalonia.Themes.Fluent/Controls/CommandBar.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/CommandBar.xaml @@ -5,29 +5,29 @@ - - + + - - - - + + + + - - - - - + + + + + - - + + - - + + @@ -108,8 +108,8 @@ - - + + @@ -195,8 +195,8 @@ - - + + diff --git a/src/Avalonia.Themes.Fluent/Controls/NavigationPage.xaml b/src/Avalonia.Themes.Fluent/Controls/NavigationPage.xaml index 45eee95081..3642f5fc22 100644 --- a/src/Avalonia.Themes.Fluent/Controls/NavigationPage.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/NavigationPage.xaml @@ -159,11 +159,11 @@ - - diff --git a/src/Avalonia.Themes.Simple/Controls/CommandBar.xaml b/src/Avalonia.Themes.Simple/Controls/CommandBar.xaml index f1384dc892..b489a20c4d 100644 --- a/src/Avalonia.Themes.Simple/Controls/CommandBar.xaml +++ b/src/Avalonia.Themes.Simple/Controls/CommandBar.xaml @@ -5,23 +5,23 @@ - - + + - - - - + + + + - - + + - - + + @@ -102,8 +102,8 @@ - - + + @@ -190,8 +190,8 @@ - - + + diff --git a/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs b/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs index 8bd4401d10..eabb6e33c1 100644 --- a/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs +++ b/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs @@ -6,27 +6,27 @@ using Xunit; namespace Avalonia.Controls.UnitTests; -public class AppBarButtonTests : ScopedTestBase +public class CommandBarButtonTests : ScopedTestBase { [Fact] public void Label_DefaultIsNull() - => Assert.Null(new AppBarButton().Label); + => Assert.Null(new CommandBarButton().Label); [Fact] public void Label_RoundTrip() { - var btn = new AppBarButton { Label = "Save" }; + var btn = new CommandBarButton { Label = "Save" }; Assert.Equal("Save", btn.Label); } [Fact] public void Icon_DefaultIsNull() - => Assert.Null(new AppBarButton().Icon); + => Assert.Null(new CommandBarButton().Icon); [Fact] public void Icon_RoundTrip() { - var btn = new AppBarButton(); + var btn = new CommandBarButton(); var icon = new object(); btn.Icon = icon; Assert.Same(icon, btn.Icon); @@ -34,72 +34,72 @@ public class AppBarButtonTests : ScopedTestBase [Fact] public void IsCompact_DefaultIsFalse() - => Assert.False(new AppBarButton().IsCompact); + => Assert.False(new CommandBarButton().IsCompact); [Fact] public void IsCompact_RoundTrip() { - var btn = new AppBarButton { IsCompact = true }; + var btn = new CommandBarButton { IsCompact = true }; Assert.True(btn.IsCompact); } [Fact] public void DynamicOverflowOrder_DefaultIsZero() - => Assert.Equal(0, new AppBarButton().DynamicOverflowOrder); + => Assert.Equal(0, new CommandBarButton().DynamicOverflowOrder); [Fact] public void DynamicOverflowOrder_RoundTrip() { - var btn = new AppBarButton { DynamicOverflowOrder = 3 }; + var btn = new CommandBarButton { DynamicOverflowOrder = 3 }; Assert.Equal(3, btn.DynamicOverflowOrder); } [Fact] public void LabelPosition_DefaultIsBottom() - => Assert.Equal(CommandBarDefaultLabelPosition.Bottom, new AppBarButton().LabelPosition); + => Assert.Equal(CommandBarDefaultLabelPosition.Bottom, new CommandBarButton().LabelPosition); [Fact] public void LabelPosition_RoundTrip() { - var btn = new AppBarButton { LabelPosition = CommandBarDefaultLabelPosition.Right }; + var btn = new CommandBarButton { LabelPosition = CommandBarDefaultLabelPosition.Right }; Assert.Equal(CommandBarDefaultLabelPosition.Right, btn.LabelPosition); } [Fact] public void IsInOverflow_DefaultIsFalse() - => Assert.False(new AppBarButton().IsInOverflow); + => Assert.False(new CommandBarButton().IsInOverflow); [Fact] public void IsInOverflow_RoundTrip() { - var btn = new AppBarButton { IsInOverflow = true }; + var btn = new CommandBarButton { IsInOverflow = true }; Assert.True(btn.IsInOverflow); } [Fact] public void ImplementsICommandBarElement() - => Assert.IsAssignableFrom(new AppBarButton()); + => Assert.IsAssignableFrom(new CommandBarButton()); [Fact] public void ICommandBarElement_IsCompact_ReadWrite() { - ICommandBarElement elem = new AppBarButton(); + ICommandBarElement elem = new CommandBarButton(); elem.IsCompact = true; Assert.True(elem.IsCompact); } [Fact] public void Command_DefaultIsNull() - => Assert.Null(new AppBarButton().Command); + => Assert.Null(new CommandBarButton().Command); [Fact] public void CommandParameter_DefaultIsNull() - => Assert.Null(new AppBarButton().CommandParameter); + => Assert.Null(new CommandBarButton().CommandParameter); [Fact] public void Command_RoundTrip() { - var btn = new AppBarButton(); + var btn = new CommandBarButton(); var cmd = new DelegateCommand(_ => { }); btn.Command = cmd; Assert.Same(cmd, btn.Command); @@ -108,85 +108,85 @@ public class AppBarButtonTests : ScopedTestBase [Fact] public void CommandParameter_RoundTrip() { - var btn = new AppBarButton { CommandParameter = "param" }; + var btn = new CommandBarButton { CommandParameter = "param" }; Assert.Equal("param", btn.CommandParameter); } } -public class AppBarToggleButtonTests : ScopedTestBase +public class CommandBarToggleButtonTests : ScopedTestBase { [Fact] public void Label_DefaultIsNull() - => Assert.Null(new AppBarToggleButton().Label); + => Assert.Null(new CommandBarToggleButton().Label); [Fact] public void Label_RoundTrip() { - var btn = new AppBarToggleButton { Label = "Bold" }; + var btn = new CommandBarToggleButton { Label = "Bold" }; Assert.Equal("Bold", btn.Label); } [Fact] public void Icon_DefaultIsNull() - => Assert.Null(new AppBarToggleButton().Icon); + => Assert.Null(new CommandBarToggleButton().Icon); [Fact] public void IsCompact_DefaultIsFalse() - => Assert.False(new AppBarToggleButton().IsCompact); + => Assert.False(new CommandBarToggleButton().IsCompact); [Fact] public void IsCompact_RoundTrip() { - var btn = new AppBarToggleButton { IsCompact = true }; + var btn = new CommandBarToggleButton { IsCompact = true }; Assert.True(btn.IsCompact); } [Fact] public void DynamicOverflowOrder_DefaultIsZero() - => Assert.Equal(0, new AppBarToggleButton().DynamicOverflowOrder); + => Assert.Equal(0, new CommandBarToggleButton().DynamicOverflowOrder); [Fact] public void DynamicOverflowOrder_RoundTrip() { - var btn = new AppBarToggleButton { DynamicOverflowOrder = 5 }; + var btn = new CommandBarToggleButton { DynamicOverflowOrder = 5 }; Assert.Equal(5, btn.DynamicOverflowOrder); } [Fact] public void LabelPosition_DefaultIsBottom() - => Assert.Equal(CommandBarDefaultLabelPosition.Bottom, new AppBarToggleButton().LabelPosition); + => Assert.Equal(CommandBarDefaultLabelPosition.Bottom, new CommandBarToggleButton().LabelPosition); [Fact] public void LabelPosition_RoundTrip() { - var btn = new AppBarToggleButton { LabelPosition = CommandBarDefaultLabelPosition.Collapsed }; + var btn = new CommandBarToggleButton { LabelPosition = CommandBarDefaultLabelPosition.Collapsed }; Assert.Equal(CommandBarDefaultLabelPosition.Collapsed, btn.LabelPosition); } [Fact] public void IsInOverflow_DefaultIsFalse() - => Assert.False(new AppBarToggleButton().IsInOverflow); + => Assert.False(new CommandBarToggleButton().IsInOverflow); [Fact] public void ImplementsICommandBarElement() - => Assert.IsAssignableFrom(new AppBarToggleButton()); + => Assert.IsAssignableFrom(new CommandBarToggleButton()); [Fact] public void ICommandBarElement_IsCompact_ReadWrite() { - ICommandBarElement elem = new AppBarToggleButton(); + ICommandBarElement elem = new CommandBarToggleButton(); elem.IsCompact = true; Assert.True(elem.IsCompact); } [Fact] public void Command_DefaultIsNull() - => Assert.Null(new AppBarToggleButton().Command); + => Assert.Null(new CommandBarToggleButton().Command); [Fact] public void Command_RoundTrip() { - var btn = new AppBarToggleButton(); + var btn = new CommandBarToggleButton(); var cmd = new DelegateCommand(_ => { }); btn.Command = cmd; Assert.Same(cmd, btn.Command); @@ -195,43 +195,47 @@ public class AppBarToggleButtonTests : ScopedTestBase [Fact] public void CommandParameter_RoundTrip() { - var btn = new AppBarToggleButton { CommandParameter = 42 }; + var btn = new CommandBarToggleButton { CommandParameter = 42 }; Assert.Equal(42, btn.CommandParameter); } } -public class AppBarSeparatorTests : ScopedTestBase +public class CommandBarSeparatorTests : ScopedTestBase { [Fact] public void IsCompact_DefaultIsFalse() - => Assert.False(new AppBarSeparator().IsCompact); + => Assert.False(new CommandBarSeparator().IsCompact); [Fact] public void IsCompact_RoundTrip() { - var sep = new AppBarSeparator { IsCompact = true }; + var sep = new CommandBarSeparator { IsCompact = true }; Assert.True(sep.IsCompact); } [Fact] public void IsInOverflow_DefaultIsFalse() - => Assert.False(new AppBarSeparator().IsInOverflow); + => Assert.False(new CommandBarSeparator().IsInOverflow); [Fact] public void IsInOverflow_RoundTrip() { - var sep = new AppBarSeparator { IsInOverflow = true }; + var sep = new CommandBarSeparator { IsInOverflow = true }; Assert.True(sep.IsInOverflow); } [Fact] public void ImplementsICommandBarElement() - => Assert.IsAssignableFrom(new AppBarSeparator()); + => Assert.IsAssignableFrom(new CommandBarSeparator()); + + [Fact] + public void DerivesFromSeparator() + => Assert.IsAssignableFrom(new CommandBarSeparator()); [Fact] public void ICommandBarElement_IsCompact_ReadWrite() { - ICommandBarElement elem = new AppBarSeparator(); + ICommandBarElement elem = new CommandBarSeparator(); elem.IsCompact = true; Assert.True(elem.IsCompact); } @@ -517,7 +521,7 @@ public class CommandBarCollectionTests : ScopedTestBase public void PrimaryCommands_Added_AppearInVisiblePrimary_WhenDynamicOverflowDisabled() { var cb = new CommandBar(); - var btn = new AppBarButton { Label = "Save" }; + var btn = new CommandBarButton { Label = "Save" }; cb.PrimaryCommands!.Add(btn); Assert.Contains(btn, cb.VisiblePrimaryCommands); } @@ -530,7 +534,7 @@ public class CommandBarCollectionTests : ScopedTestBase ((INotifyCollectionChanged)cb.VisiblePrimaryCommands).CollectionChanged += (_, _) => notifications++; - cb.PrimaryCommands!.Add(new AppBarButton { Label = "Save" }); + cb.PrimaryCommands!.Add(new CommandBarButton { Label = "Save" }); Assert.Equal(2, notifications); } @@ -539,7 +543,7 @@ public class CommandBarCollectionTests : ScopedTestBase public void PrimaryCommands_Removed_DisappearsFromVisiblePrimary() { var cb = new CommandBar(); - var btn = new AppBarButton { Label = "Save" }; + var btn = new CommandBarButton { Label = "Save" }; cb.PrimaryCommands!.Add(btn); cb.PrimaryCommands!.Remove(btn); Assert.DoesNotContain(btn, cb.VisiblePrimaryCommands); @@ -549,7 +553,7 @@ public class CommandBarCollectionTests : ScopedTestBase public void SecondaryCommands_Added_AppearInOverflowItems() { var cb = new CommandBar(); - var btn = new AppBarButton { Label = "Settings" }; + var btn = new CommandBarButton { Label = "Settings" }; cb.SecondaryCommands!.Add(btn); Assert.Contains(btn, cb.OverflowItems); } @@ -562,7 +566,7 @@ public class CommandBarCollectionTests : ScopedTestBase ((INotifyCollectionChanged)cb.OverflowItems).CollectionChanged += (_, _) => notifications++; - cb.SecondaryCommands!.Add(new AppBarButton { Label = "Settings" }); + cb.SecondaryCommands!.Add(new CommandBarButton { Label = "Settings" }); Assert.Equal(2, notifications); } @@ -571,7 +575,7 @@ public class CommandBarCollectionTests : ScopedTestBase public void SecondaryCommands_Removed_DisappearsFromOverflowItems() { var cb = new CommandBar(); - var btn = new AppBarButton { Label = "Settings" }; + var btn = new CommandBarButton { Label = "Settings" }; cb.SecondaryCommands!.Add(btn); cb.SecondaryCommands!.Remove(btn); Assert.DoesNotContain(btn, cb.OverflowItems); @@ -581,7 +585,7 @@ public class CommandBarCollectionTests : ScopedTestBase public void HasSecondaryCommands_TrueWhenSecondaryAdded() { var cb = new CommandBar(); - cb.SecondaryCommands!.Add(new AppBarButton { Label = "Options" }); + cb.SecondaryCommands!.Add(new CommandBarButton { Label = "Options" }); Assert.True(cb.HasSecondaryCommands); } @@ -589,7 +593,7 @@ public class CommandBarCollectionTests : ScopedTestBase public void HasSecondaryCommands_FalseAfterSecondaryCleared() { var cb = new CommandBar(); - var btn = new AppBarButton { Label = "Options" }; + var btn = new CommandBarButton { Label = "Options" }; cb.SecondaryCommands!.Add(btn); cb.SecondaryCommands!.Remove(btn); Assert.False(cb.HasSecondaryCommands); @@ -599,8 +603,8 @@ public class CommandBarCollectionTests : ScopedTestBase public void OverflowItems_CountMatchesSecondaryCommandCount() { var cb = new CommandBar(); - cb.SecondaryCommands!.Add(new AppBarButton()); - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); Assert.Equal(2, cb.OverflowItems.Count); } @@ -608,8 +612,8 @@ public class CommandBarCollectionTests : ScopedTestBase public void VisiblePrimaryCommands_CountMatchesPrimary_WhenDynamicOverflowDisabled() { var cb = new CommandBar(); - cb.PrimaryCommands!.Add(new AppBarButton()); - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); Assert.Equal(2, cb.VisiblePrimaryCommands.Count); } @@ -617,9 +621,9 @@ public class CommandBarCollectionTests : ScopedTestBase public void MultiplePrimaryCommands_AllVisibleInOrder() { var cb = new CommandBar(); - var btn1 = new AppBarButton { Label = "A" }; - var btn2 = new AppBarButton { Label = "B" }; - var btn3 = new AppBarButton { Label = "C" }; + var btn1 = new CommandBarButton { Label = "A" }; + var btn2 = new CommandBarButton { Label = "B" }; + var btn3 = new CommandBarButton { Label = "C" }; cb.PrimaryCommands!.Add(btn1); cb.PrimaryCommands!.Add(btn2); cb.PrimaryCommands!.Add(btn3); @@ -627,19 +631,19 @@ public class CommandBarCollectionTests : ScopedTestBase } [Fact] - public void AppBarSeparator_CanBeAddedToPrimaryCommands() + public void CommandBarSeparator_CanBeAddedToPrimaryCommands() { var cb = new CommandBar(); - var sep = new AppBarSeparator(); + var sep = new CommandBarSeparator(); cb.PrimaryCommands!.Add(sep); Assert.Contains(sep, cb.VisiblePrimaryCommands); } [Fact] - public void AppBarToggleButton_CanBeAddedToPrimaryCommands() + public void CommandBarToggleButton_CanBeAddedToPrimaryCommands() { var cb = new CommandBar(); - var toggle = new AppBarToggleButton { Label = "Bold" }; + var toggle = new CommandBarToggleButton { Label = "Bold" }; cb.PrimaryCommands!.Add(toggle); Assert.Contains(toggle, cb.VisiblePrimaryCommands); } @@ -651,7 +655,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Collapsed_SetsIsCompactOnExistingPrimaryButton() { var cb = new CommandBar(); - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.PrimaryCommands!.Add(btn); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; @@ -663,7 +667,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Bottom_ClearsIsCompactOnPrimaryButton() { var cb = new CommandBar(); - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.PrimaryCommands!.Add(btn); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; @@ -676,7 +680,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Right_SetsLabelPositionOnPrimaryButton() { var cb = new CommandBar(); - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.PrimaryCommands!.Add(btn); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Right; @@ -688,7 +692,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Collapsed_SetsLabelPositionOnPrimaryButton() { var cb = new CommandBar(); - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.PrimaryCommands!.Add(btn); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; @@ -700,7 +704,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Collapsed_PropagatesIsCompactToToggleButton() { var cb = new CommandBar(); - var toggle = new AppBarToggleButton(); + var toggle = new CommandBarToggleButton(); cb.PrimaryCommands!.Add(toggle); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; @@ -713,7 +717,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Right_PropagatesLabelPositionToToggleButton() { var cb = new CommandBar(); - var toggle = new AppBarToggleButton(); + var toggle = new CommandBarToggleButton(); cb.PrimaryCommands!.Add(toggle); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Right; @@ -725,7 +729,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Collapsed_SetsIsCompactOnSeparator() { var cb = new CommandBar(); - var sep = new AppBarSeparator(); + var sep = new CommandBarSeparator(); cb.PrimaryCommands!.Add(sep); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; @@ -738,7 +742,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase { var cb = new CommandBar { DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed }; - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.PrimaryCommands!.Add(btn); Assert.True(btn.IsCompact); @@ -750,7 +754,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase { var cb = new CommandBar { DefaultLabelPosition = CommandBarDefaultLabelPosition.Right }; - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.PrimaryCommands!.Add(btn); Assert.Equal(CommandBarDefaultLabelPosition.Right, btn.LabelPosition); @@ -760,7 +764,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_Collapsed_AppliesToSecondaryCommands() { var cb = new CommandBar(); - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.SecondaryCommands!.Add(btn); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; @@ -772,7 +776,7 @@ public class CommandBarLabelPositionTests : ScopedTestBase public void DefaultLabelPosition_DoesNotClearLabelText() { var cb = new CommandBar(); - var btn = new AppBarButton { Label = "Save" }; + var btn = new CommandBarButton { Label = "Save" }; cb.PrimaryCommands!.Add(btn); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; @@ -801,7 +805,7 @@ public class CommandBarOverflowButtonTests : ScopedTestBase public void OverflowButtonVisibility_Auto_TrueWhenHasSecondaryCommands() { var cb = new CommandBar(); - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); Assert.True(cb.IsOverflowButtonVisible); } @@ -823,7 +827,7 @@ public class CommandBarOverflowButtonTests : ScopedTestBase public void OverflowButtonVisibility_Collapsed_RemainsFalseEvenWithSecondary() { var cb = new CommandBar { OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Collapsed }; - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); Assert.False(cb.IsOverflowButtonVisible); } @@ -831,7 +835,7 @@ public class CommandBarOverflowButtonTests : ScopedTestBase public void OverflowButtonVisibility_Auto_FalseAfterSecondaryRemoved() { var cb = new CommandBar(); - var btn = new AppBarButton(); + var btn = new CommandBarButton(); cb.SecondaryCommands!.Add(btn); Assert.True(cb.IsOverflowButtonVisible); @@ -863,9 +867,9 @@ public class CommandBarItemWidthTests : ScopedTestBase public void ItemWidthBottom_Controls_HowManyButtonsFit() { var cb = CreateWithWidth(300); - cb.SecondaryCommands!.Add(new AppBarButton()); // forces overflow button + cb.SecondaryCommands!.Add(new CommandBarButton()); // forces overflow button for (int i = 0; i < 4; i++) - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); cb.IsDynamicOverflowEnabled = true; Assert.Equal(3, cb.VisiblePrimaryCommands.Count); @@ -877,9 +881,9 @@ public class CommandBarItemWidthTests : ScopedTestBase { var cb = CreateWithWidth(300); cb.ItemWidthBottom = 35; - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); for (int i = 0; i < 4; i++) - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); cb.IsDynamicOverflowEnabled = true; Assert.Equal(4, cb.VisiblePrimaryCommands.Count); @@ -890,9 +894,9 @@ public class CommandBarItemWidthTests : ScopedTestBase { var cb = CreateWithWidth(300); cb.ItemWidthBottom = 260; - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); for (int i = 0; i < 3; i++) - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); cb.IsDynamicOverflowEnabled = true; Assert.Equal(1, cb.VisiblePrimaryCommands.Count); @@ -903,9 +907,9 @@ public class CommandBarItemWidthTests : ScopedTestBase { var cb = CreateWithWidth(300); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Right; - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); for (int i = 0; i < 4; i++) - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); cb.IsDynamicOverflowEnabled = true; Assert.Equal(2, cb.VisiblePrimaryCommands.Count); @@ -917,9 +921,9 @@ public class CommandBarItemWidthTests : ScopedTestBase var cb = CreateWithWidth(300); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Right; cb.ItemWidthRight = 252; // exactly 1 fits: 252/252=1 - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); for (int i = 0; i < 3; i++) - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); cb.IsDynamicOverflowEnabled = true; Assert.Equal(1, cb.VisiblePrimaryCommands.Count); @@ -930,9 +934,9 @@ public class CommandBarItemWidthTests : ScopedTestBase { var cb = CreateWithWidth(300); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Collapsed; - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); for (int i = 0; i < 4; i++) - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); cb.IsDynamicOverflowEnabled = true; Assert.Equal(4, cb.VisiblePrimaryCommands.Count); @@ -945,9 +949,9 @@ public class CommandBarItemWidthTests : ScopedTestBase cb.ItemWidthBottom = 70; cb.ItemWidthRight = 102; cb.ItemWidthCollapsed = 42; - cb.SecondaryCommands!.Add(new AppBarButton()); + cb.SecondaryCommands!.Add(new CommandBarButton()); for (int i = 0; i < 4; i++) - cb.PrimaryCommands!.Add(new AppBarButton()); + cb.PrimaryCommands!.Add(new CommandBarButton()); cb.DefaultLabelPosition = CommandBarDefaultLabelPosition.Bottom; cb.IsDynamicOverflowEnabled = true; diff --git a/tests/Avalonia.RenderTests/Controls/CommandBarTests.cs b/tests/Avalonia.RenderTests/Controls/CommandBarTests.cs index a518851027..ebef5ce419 100644 --- a/tests/Avalonia.RenderTests/Controls/CommandBarTests.cs +++ b/tests/Avalonia.RenderTests/Controls/CommandBarTests.cs @@ -37,7 +37,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls Background = Brushes.LightGray, PrimaryCommands = { - new AppBarButton + new CommandBarButton { Label = "New", Icon = new Path @@ -49,7 +49,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls Stretch = Stretch.Uniform } }, - new AppBarButton + new CommandBarButton { Label = "Save", Icon = new Path @@ -61,8 +61,8 @@ namespace Avalonia.Direct2D1.RenderTests.Controls Stretch = Stretch.Uniform } }, - new AppBarSeparator(), - new AppBarToggleButton + new CommandBarSeparator(), + new CommandBarToggleButton { Label = "Bold", Icon = new Path @@ -98,7 +98,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Collapsed, PrimaryCommands = { - new AppBarButton + new CommandBarButton { Icon = new Path { @@ -109,7 +109,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls Stretch = Stretch.Uniform } }, - new AppBarButton + new CommandBarButton { Icon = new Path { @@ -120,8 +120,8 @@ namespace Avalonia.Direct2D1.RenderTests.Controls Stretch = Stretch.Uniform } }, - new AppBarSeparator(), - new AppBarToggleButton + new CommandBarSeparator(), + new CommandBarToggleButton { IsChecked = true, Icon = new Path diff --git a/tests/Avalonia.RenderTests/Controls/ContentPageTests.cs b/tests/Avalonia.RenderTests/Controls/ContentPageTests.cs index 07ba5b6505..1d3c30c8e5 100644 --- a/tests/Avalonia.RenderTests/Controls/ContentPageTests.cs +++ b/tests/Avalonia.RenderTests/Controls/ContentPageTests.cs @@ -71,7 +71,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls Background = Brushes.LightGray, PrimaryCommands = { - new AppBarButton + new CommandBarButton { Label = "Save", Icon = new Path @@ -83,8 +83,8 @@ namespace Avalonia.Direct2D1.RenderTests.Controls Stretch = Stretch.Uniform } }, - new AppBarSeparator(), - new AppBarToggleButton + new CommandBarSeparator(), + new CommandBarToggleButton { Label = "Bold", Icon = new Path @@ -105,7 +105,7 @@ namespace Avalonia.Direct2D1.RenderTests.Controls OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Collapsed, PrimaryCommands = { - new AppBarButton + new CommandBarButton { Icon = new Path {