C# 在运行时更改W8应用程序的语言

C# 在运行时更改W8应用程序的语言,c#,localization,winrt-xaml,C#,Localization,Winrt Xaml,我必须本地化W8 C#应用程序。 用户必须能够在运行时更改语言 我试图使用: Windows.Globalization.ApplicationLanguages.PromaryLanguageOverride = "de-DE"; 并使用以下内容重新加载框架: var _Frame = Windo.Current.Content as Frame; _Frame.Navigate(_Frame.Content.GetType()); _Frame.GoBack(); 它在运行时不起作用,但

我必须本地化W8 C#应用程序。 用户必须能够在运行时更改语言

我试图使用:

Windows.Globalization.ApplicationLanguages.PromaryLanguageOverride = "de-DE";
并使用以下内容重新加载框架:

var _Frame = Windo.Current.Content as Frame;
_Frame.Navigate(_Frame.Content.GetType());
_Frame.GoBack();
它在运行时不起作用,但在我重新启动应用程序时起作用

我能做些什么使它在运行时工作

我的应用程序只有像“en-US”这样的文件夹中的图像;“德德”;“fr”

Package.appxmanifest具有以下属性:

<Ressource Language="x-generate" />

我已尝试指定每种语言:

<Resources>
   <Resource Language="en-US" />
   <Resource Language="fr-FR" />
   <Resource Language="de-DE" />
</Resources>

但这并没有改变什么


感谢您的帮助。

您需要重新创建已显示的视图-这是关闭并重新启动应用程序时发生的情况

如果启动应用程序并更改语言,new视图将以新语言显示,但内存中仍然存在的任何视图都将显示原始文本

您有两个选择:

  • 自动重新启动应用程序并重新显示用户更改语言时所在的页面
  • 浏览并重新创建任何现有视图,以便它们获取新资源

  • 检查这个,这是你想要的


    请注意,这与Windows 8.1有关。这些示例演示了如何选择特定语言的资源,但并不是应用于所有应用程序:-(事实上,以下视图不受语言更新的影响。我实际上需要重新启动应用程序。