Fix the issue with Chinese fonts on menu flyout items and appbar buttons in compose page.

This commit is contained in:
Burak Kaan Köse
2026-04-20 22:51:08 +02:00
parent 9292c963d5
commit 23dce29ff8
2 changed files with 30 additions and 3 deletions
@@ -1,4 +1,5 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls;
using Wino.Core.Domain.Enums; using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Interfaces; using Wino.Core.Domain.Interfaces;
@@ -9,15 +10,36 @@ internal static class MenuFlyoutLanguageHelper
{ {
private const string ChineseLanguageTag = "zh-CN"; 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) 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 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; frameworkElement.DataContext = dataContext;
} }
if (element is DependencyObject dependencyObject)
{
MenuFlyoutLanguageHelper.Apply(dependencyObject);
}
return element; return element;
} }