Fix the issue with Chinese fonts on menu flyout items and appbar buttons in compose page.
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.UI.Xaml;
|
||||
using Microsoft.UI.Xaml.Controls;
|
||||
using Wino.Core.Domain.Enums;
|
||||
using Wino.Core.Domain.Interfaces;
|
||||
@@ -9,15 +10,36 @@ internal static class MenuFlyoutLanguageHelper
|
||||
{
|
||||
private const string ChineseLanguageTag = "zh-CN";
|
||||
|
||||
public static void Apply(MenuFlyoutItemBase item)
|
||||
public static void Apply(DependencyObject? element)
|
||||
{
|
||||
if (element == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (WinoApplication.Current.Services.GetRequiredService<IPreferencesService>().CurrentLanguage == AppLanguage.Chinese)
|
||||
{
|
||||
item.Language = ChineseLanguageTag;
|
||||
switch (element)
|
||||
{
|
||||
case MenuFlyoutItemBase menuFlyoutItem:
|
||||
menuFlyoutItem.Language = ChineseLanguageTag;
|
||||
break;
|
||||
case FrameworkElement frameworkElement:
|
||||
frameworkElement.Language = ChineseLanguageTag;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
item.ClearValue(MenuFlyoutItemBase.LanguageProperty);
|
||||
switch (element)
|
||||
{
|
||||
case MenuFlyoutItemBase menuFlyoutItem:
|
||||
menuFlyoutItem.ClearValue(MenuFlyoutItemBase.LanguageProperty);
|
||||
break;
|
||||
case FrameworkElement frameworkElement:
|
||||
frameworkElement.ClearValue(FrameworkElement.LanguageProperty);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -438,6 +438,11 @@ public sealed partial class OperationCommandBar : CommandBar
|
||||
frameworkElement.DataContext = dataContext;
|
||||
}
|
||||
|
||||
if (element is DependencyObject dependencyObject)
|
||||
{
|
||||
MenuFlyoutLanguageHelper.Apply(dependencyObject);
|
||||
}
|
||||
|
||||
return element;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user