From e92921a6cc9e9fd60cdba675fbe6fb9ff1b044fc Mon Sep 17 00:00:00 2001 From: Aleh Khantsevich Date: Fri, 26 Apr 2024 01:47:46 +0200 Subject: [PATCH 1/2] Fix commend bar issues #165 --- .../MailRenderingPageViewModel.cs | 2 +- .../Behaviors/BindableCommandBarBehavior.cs | 47 +++++++++---------- Wino.Mail/Views/MailRenderingPage.xaml | 6 +-- 3 files changed, 24 insertions(+), 31 deletions(-) diff --git a/Wino.Mail.ViewModels/MailRenderingPageViewModel.cs b/Wino.Mail.ViewModels/MailRenderingPageViewModel.cs index d51d2073..eaba467c 100644 --- a/Wino.Mail.ViewModels/MailRenderingPageViewModel.cs +++ b/Wino.Mail.ViewModels/MailRenderingPageViewModel.cs @@ -462,7 +462,7 @@ namespace Wino.Mail.ViewModels MenuItems.Clear(); // Add light/dark editor theme switch. - if (_underlyingThemeService.IsUnderlyingThemeDark()) + if (IsDarkWebviewRenderer) MenuItems.Add(MailOperationMenuItem.Create(MailOperation.LightEditor)); else MenuItems.Add(MailOperationMenuItem.Create(MailOperation.DarkEditor)); diff --git a/Wino.Mail/Behaviors/BindableCommandBarBehavior.cs b/Wino.Mail/Behaviors/BindableCommandBarBehavior.cs index d554fdea..afb917fa 100644 --- a/Wino.Mail/Behaviors/BindableCommandBarBehavior.cs +++ b/Wino.Mail/Behaviors/BindableCommandBarBehavior.cs @@ -1,7 +1,7 @@ -using Microsoft.Xaml.Interactivity; -using System.Collections; +using System.Collections; using System.Collections.Specialized; using System.Windows.Input; +using Microsoft.Xaml.Interactivity; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; @@ -98,42 +98,37 @@ namespace Wino.Behaviors { if (command is MailOperationMenuItem mailOperationMenuItem) { + ICommandBarElement menuItem = null; + if (mailOperationMenuItem.Operation == Core.Domain.Enums.MailOperation.Seperator) { - var seperator = new AppBarSeparator(); - - if (mailOperationMenuItem.IsSecondaryMenuPreferred) - { - AssociatedObject.SecondaryCommands.Add(seperator); - } - else - { - AssociatedObject.PrimaryCommands.Add(seperator); - } + menuItem = new AppBarSeparator(); } else { - var menuItem = new AppBarButton() + var label = XamlHelpers.GetOperationString(mailOperationMenuItem.Operation); + menuItem = new AppBarButton { Icon = new WinoFontIcon() { Glyph = ControlConstants.WinoIconFontDictionary[XamlHelpers.GetWinoIconGlyph(mailOperationMenuItem.Operation)] }, - Label = XamlHelpers.GetOperationString(mailOperationMenuItem.Operation), + Label = label, + LabelPosition = string.IsNullOrWhiteSpace(label) ? CommandBarLabelPosition.Collapsed : CommandBarLabelPosition.Default, DataContext = mailOperationMenuItem, }; - menuItem.Click -= Button_Click; - menuItem.Click += Button_Click; + ((AppBarButton)menuItem).Click -= Button_Click; + ((AppBarButton)menuItem).Click += Button_Click; + } - if (mailOperationMenuItem.IsSecondaryMenuPreferred) - { - AssociatedObject.SecondaryCommands.Add(menuItem); - } - else - { - AssociatedObject.PrimaryCommands.Add(menuItem); - } + if (mailOperationMenuItem.IsSecondaryMenuPreferred) + { + AssociatedObject.SecondaryCommands.Add(menuItem); + } + else + { + AssociatedObject.PrimaryCommands.Add(menuItem); } } - + //if (dependencyObject is ICommandBarElement icommandBarElement) //{ // if (dependencyObject is ButtonBase button) @@ -144,7 +139,7 @@ namespace Wino.Behaviors // if (command is MailOperationMenuItem mailOperationMenuItem) // { - + // } //} } diff --git a/Wino.Mail/Views/MailRenderingPage.xaml b/Wino.Mail/Views/MailRenderingPage.xaml index f5f1579d..d85f4c2b 100644 --- a/Wino.Mail/Views/MailRenderingPage.xaml +++ b/Wino.Mail/Views/MailRenderingPage.xaml @@ -150,12 +150,10 @@ x:Name="RendererBar" Grid.Row="0" Margin="8,6,0,0" - IsSticky="True" + IsSticky="False" DefaultLabelPosition="Right" HorizontalContentAlignment="Stretch" - OverflowButtonVisibility="Auto" - DynamicOverflowItemsChanging="BarDynamicOverflowChanging" - IsDynamicOverflowEnabled="True"> + OverflowButtonVisibility="Auto"> Date: Fri, 26 Apr 2024 14:30:00 +0200 Subject: [PATCH 2/2] Change visible to condition for SecondaryItems --- Wino.Mail/Views/MailRenderingPage.xaml | 5 +++-- Wino.Mail/Views/MailRenderingPage.xaml.cs | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Wino.Mail/Views/MailRenderingPage.xaml b/Wino.Mail/Views/MailRenderingPage.xaml index d85f4c2b..95341e93 100644 --- a/Wino.Mail/Views/MailRenderingPage.xaml +++ b/Wino.Mail/Views/MailRenderingPage.xaml @@ -150,10 +150,11 @@ x:Name="RendererBar" Grid.Row="0" Margin="8,6,0,0" - IsSticky="False" DefaultLabelPosition="Right" HorizontalContentAlignment="Stretch" - OverflowButtonVisibility="Auto"> + OverflowButtonVisibility="Auto" + DynamicOverflowItemsChanging="BarDynamicOverflowChanging" + IsDynamicOverflowEnabled="True">