From 23dce29ff8a76ad0459b057db1b9ddd85f5702c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Burak=20Kaan=20K=C3=B6se?= Date: Mon, 20 Apr 2026 22:51:08 +0200 Subject: [PATCH] Fix the issue with Chinese fonts on menu flyout items and appbar buttons in compose page. --- .../Controls/MenuFlyoutLanguageHelper.cs | 28 +++++++++++++++++-- .../Controls/OperationCommandBar.cs | 5 ++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Wino.Mail.WinUI/Controls/MenuFlyoutLanguageHelper.cs b/Wino.Mail.WinUI/Controls/MenuFlyoutLanguageHelper.cs index 2d72b7e2..580f6233 100644 --- a/Wino.Mail.WinUI/Controls/MenuFlyoutLanguageHelper.cs +++ b/Wino.Mail.WinUI/Controls/MenuFlyoutLanguageHelper.cs @@ -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().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; + } } } } diff --git a/Wino.Mail.WinUI/Controls/OperationCommandBar.cs b/Wino.Mail.WinUI/Controls/OperationCommandBar.cs index 0da1fcf5..c9685213 100644 --- a/Wino.Mail.WinUI/Controls/OperationCommandBar.cs +++ b/Wino.Mail.WinUI/Controls/OperationCommandBar.cs @@ -438,6 +438,11 @@ public sealed partial class OperationCommandBar : CommandBar frameworkElement.DataContext = dataContext; } + if (element is DependencyObject dependencyObject) + { + MenuFlyoutLanguageHelper.Apply(dependencyObject); + } + return element; }