【问题标题】:How to change UI language programmatically?如何以编程方式更改 UI 语言?
【发布时间】:2013-10-02 16:02:45
【问题描述】:

我想自己通过代码更改 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;

但是,什么也没有发生。只是流向从右到左。

【问题讨论】:

  • .AppResource.AppResource.Culture = new System.Globalization.CultureInfo("de-DE");

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


【解决方案1】:

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

简而言之,你可以这样做

  1. 为您的应用支持的每种文化创建资源
  2. 修改您的项目 (*.csproj) 文件以支持您选择的语言(如果您使用 VS 2010 和 WP 7.1 SDK)
  3. 创建 ViewModel 类来管理资源并通知 UI 当前文化的变化
  4. 为用户提供适当的 UI 线索以更改应用语言(切换按钮、列表或类似的东西)
  5. 在用户交互时更改当前文化

记得更改绑定模式,而不是OneTime

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多