Chinese language treatment for WinUI bug.
This commit is contained in:
@@ -60,7 +60,7 @@ public partial class CalendarItemCommandBarFlyout : CommandBarFlyout
|
||||
|
||||
if (menuItem.HasChildren)
|
||||
{
|
||||
var flyout = new MenuFlyout();
|
||||
var flyout = new WinoMenuFlyout();
|
||||
PopulateMenuFlyoutItems(flyout.Items, menuItem.Children);
|
||||
button.Flyout = flyout;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
|
||||
namespace Wino.Mail.WinUI.Controls;
|
||||
|
||||
internal static class MenuFlyoutLanguageHelper
|
||||
{
|
||||
private const string ChineseLanguageTag = "zh-CN";
|
||||
|
||||
public static void Apply(MenuFlyoutItemBase item)
|
||||
{
|
||||
if (WinoApplication.Current.Services.GetRequiredService<IPreferencesService>().CurrentLanguage == AppLanguage.Chinese)
|
||||
{
|
||||
item.Language = ChineseLanguageTag;
|
||||
}
|
||||
else
|
||||
{
|
||||
item.ClearValue(MenuFlyoutItemBase.LanguageProperty);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
|
||||
namespace Wino.Mail.WinUI.Controls;
|
||||
|
||||
public partial class WinoMenuFlyout : MenuFlyout
|
||||
{
|
||||
public WinoMenuFlyout()
|
||||
{
|
||||
Opening += OnOpening;
|
||||
}
|
||||
|
||||
private void OnOpening(object? sender, object e)
|
||||
{
|
||||
foreach (var item in Items)
|
||||
{
|
||||
ApplyLanguage(item);
|
||||
}
|
||||
}
|
||||
|
||||
private static void ApplyLanguage(MenuFlyoutItemBase item)
|
||||
{
|
||||
MenuFlyoutLanguageHelper.Apply(item);
|
||||
|
||||
if (item is MenuFlyoutSubItem subItem)
|
||||
{
|
||||
foreach (var childItem in subItem.Items)
|
||||
{
|
||||
ApplyLanguage(childItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user