Merge pull request #167 from Tiktack/wino165-commandbar-issues

Fix commend bar issues
This commit is contained in:
Burak Kaan Köse
2024-04-28 17:50:02 +02:00
committed by GitHub
4 changed files with 24 additions and 29 deletions

View File

@@ -462,7 +462,7 @@ namespace Wino.Mail.ViewModels
MenuItems.Clear(); MenuItems.Clear();
// Add light/dark editor theme switch. // Add light/dark editor theme switch.
if (_underlyingThemeService.IsUnderlyingThemeDark()) if (IsDarkWebviewRenderer)
MenuItems.Add(MailOperationMenuItem.Create(MailOperation.LightEditor)); MenuItems.Add(MailOperationMenuItem.Create(MailOperation.LightEditor));
else else
MenuItems.Add(MailOperationMenuItem.Create(MailOperation.DarkEditor)); MenuItems.Add(MailOperationMenuItem.Create(MailOperation.DarkEditor));

View File

@@ -1,7 +1,7 @@
using Microsoft.Xaml.Interactivity; using System.Collections;
using System.Collections;
using System.Collections.Specialized; using System.Collections.Specialized;
using System.Windows.Input; using System.Windows.Input;
using Microsoft.Xaml.Interactivity;
using Windows.UI.Xaml; using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Controls.Primitives;
@@ -98,42 +98,37 @@ namespace Wino.Behaviors
{ {
if (command is MailOperationMenuItem mailOperationMenuItem) if (command is MailOperationMenuItem mailOperationMenuItem)
{ {
ICommandBarElement menuItem = null;
if (mailOperationMenuItem.Operation == Core.Domain.Enums.MailOperation.Seperator) if (mailOperationMenuItem.Operation == Core.Domain.Enums.MailOperation.Seperator)
{ {
var seperator = new AppBarSeparator(); menuItem = new AppBarSeparator();
if (mailOperationMenuItem.IsSecondaryMenuPreferred)
{
AssociatedObject.SecondaryCommands.Add(seperator);
}
else
{
AssociatedObject.PrimaryCommands.Add(seperator);
}
} }
else else
{ {
var menuItem = new AppBarButton() var label = XamlHelpers.GetOperationString(mailOperationMenuItem.Operation);
menuItem = new AppBarButton
{ {
Icon = new WinoFontIcon() { Glyph = ControlConstants.WinoIconFontDictionary[XamlHelpers.GetWinoIconGlyph(mailOperationMenuItem.Operation)] }, 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, DataContext = mailOperationMenuItem,
}; };
menuItem.Click -= Button_Click; ((AppBarButton)menuItem).Click -= Button_Click;
menuItem.Click += Button_Click; ((AppBarButton)menuItem).Click += Button_Click;
}
if (mailOperationMenuItem.IsSecondaryMenuPreferred) if (mailOperationMenuItem.IsSecondaryMenuPreferred)
{ {
AssociatedObject.SecondaryCommands.Add(menuItem); AssociatedObject.SecondaryCommands.Add(menuItem);
} }
else else
{ {
AssociatedObject.PrimaryCommands.Add(menuItem); AssociatedObject.PrimaryCommands.Add(menuItem);
}
} }
} }
//if (dependencyObject is ICommandBarElement icommandBarElement) //if (dependencyObject is ICommandBarElement icommandBarElement)
//{ //{
// if (dependencyObject is ButtonBase button) // if (dependencyObject is ButtonBase button)
@@ -144,7 +139,7 @@ namespace Wino.Behaviors
// if (command is MailOperationMenuItem mailOperationMenuItem) // if (command is MailOperationMenuItem mailOperationMenuItem)
// { // {
// } // }
//} //}
} }

View File

@@ -150,7 +150,6 @@
x:Name="RendererBar" x:Name="RendererBar"
Grid.Row="0" Grid.Row="0"
Margin="8,6,0,0" Margin="8,6,0,0"
IsSticky="True"
DefaultLabelPosition="Right" DefaultLabelPosition="Right"
HorizontalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"
OverflowButtonVisibility="Auto" OverflowButtonVisibility="Auto"

View File

@@ -1,4 +1,5 @@
using System; using System;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using CommunityToolkit.Mvvm.Messaging; using CommunityToolkit.Mvvm.Messaging;
using Microsoft.AppCenter.Crashes; using Microsoft.AppCenter.Crashes;
@@ -218,7 +219,7 @@ namespace Wino.Views
private void BarDynamicOverflowChanging(CommandBar sender, DynamicOverflowItemsChangingEventArgs args) private void BarDynamicOverflowChanging(CommandBar sender, DynamicOverflowItemsChangingEventArgs args)
{ {
if (args.Action == CommandBarDynamicOverflowAction.AddingToOverflow) if (args.Action == CommandBarDynamicOverflowAction.AddingToOverflow || sender.SecondaryCommands.Any())
sender.OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Visible; sender.OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Visible;
else else
sender.OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Collapsed; sender.OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Collapsed;