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; }