如何以编程方式更改UI语言?

时间:2013-10-02 16:02:45

标签: c# xaml windows-phone-7 windows-phone-8 windows-phone

我想通过代码改变UI语言,我自己,而不是依赖手机的语言。 (我在应用属性中选择了受支持的语言,并且每种语言都有AppResources.resx

我认为这是App.XAML.cs文件中语言发生变化的地方:

RootFrame.Language = XmlLanguage.GetLanguage(AppResources.ResourceLanguage);
FlowDirection flow = (FlowDirection)Enum.Parse(typeof(FlowDirection), AppResources.ResourceFlowDirection);
RootFrame.FlowDirection = flow;

所以我把它改成了:

RootFrame.Language = XmlLanguage.GetLanguage("de");
RootFrame.FlowDirection = FlowDirection.RightToLeft;

但是,没有任何反应。只是流向从右到左。

1 个答案:

答案 0 :(得分:1)

有一个有用的教程here,可以下载源代码here

简而言之,您可以按照以下方式进行操作

  1. 为您的应用支持的每种文化创建资源
  2. 修改项目(*.csproj)文件以支持您选择的语言(如果您使用VS 2010和WP 7.1 SDK)
  3. 创建管理资源的ViewModel类,并通知当前文化变更的UI
  4. 为用户提供适当的用户界面线索以更改应用语言(切换按钮,列表或类似内容)
  5. 根据用户互动更改当前文化
  6. 请记住更改OneTime

    以外的绑定模式