【问题标题】:How can i change language for CalendarDatePicker UWP?如何更改 CalendarDatePicker UWP 的语言?
【发布时间】:2018-12-05 10:00:29
【问题描述】:

如何在不使用 CalendarIndentifier 的情况下将此日历的语言更改为日语。

MainPage 的 XAML

<Button content="Click" Click="Button_Click" />

MainPage.xaml.cs

private async void Button_Click(object sender, RoutedEventArgs e)
{
    ApplicationLanguages.PrimaryLanguageOverride = "ja-jp";    
    testDialog dialog = new testDialog();      
    await dialog.ShowAsync();
}

我的日历在 testDialog 中。

testDialog 的 xaml

<CalendarDatePicker />

CalendarDatePicker 的语言不会立即改变,它会在我关闭应用并打开后改变

我当前操作系统的语言是:en-us

【问题讨论】:

  • 我不熟悉该控件,但从这个类似的问题(虽然没有接受的答案)看来应该有一个 Language 属性。也就是说,我在文档中找不到提及。 stackoverflow.com/questions/40677814/…
  • ps。此线程暗示信息继承自相关线程的当前文化:stackoverflow.com/a/35874987/361842
  • 是的,我已经阅读了这些链接,但它们都不起作用......
  • 你的电脑上安装了日语语言包吗?
  • 您能否在当前上下文中添加更多信息;即你的操作系统语言是什么,当前线程是什么语言,是应用程序清单中包含的语言,是在调用 CalenderDatePicker's InitializeComponent` 之前设置的线程语言吗?此外,任何与更改线程语言/显示与初始化组件相关的位置的支持代码都可能会有所帮助。

标签: c# uwp localization calendar


【解决方案1】:

来自the docs

当您设置 PrimaryLanguageOverride 时,它​​会立即反映在 ApplicationLanguages.Languages 属性中。 但是,此更改可能不会立即对应用 UI 中加载的资源生效。

为确保应用响应此类更改,您可以在默认资源上下文中侦听 QualifierValues 属性,并采取可能需要的任何操作来重新加载资源。这些要求可能因应用使用的 UI 框架而异,并且可能需要重新启动应用。

【讨论】:

  • 知道如何在 PrimaryLanguageOverriding 之后重新加载 CalendarDatePicker 吗?一切正常,除了 CalendarDatePicker
  • 尝试了几次,但没有成功。我认为这是“需要重新启动应用程序”的一种情况。
  • 重启应用时的问题是我的默认应用语言是英语如果我 PrimaryLanguageOverriding="en" 在开始日历的语言也不会更改为日语
  • 您是否尝试过@JohnLBevan 的设置CalendarView.Language 属性的建议?通过我的测试,它确实有效。
  • 我的是 CalendarDatePicker,我尝试使用 CalendarDatePicker.Language="ja-JP" 但我看不到任何感情
猜你喜欢
  • 2017-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 2018-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多