WP7完美多语言的实现

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 00:13 点击:

 

 实现目标:1.多语言实时切换

 

     2.使用系统自带的多语言机制

 

       3.支持xaml绑定

 

实现方法:

 

Step1. 创建语言文件lang.resx

 

Step2. 创建多语言文件lang.resx.zh-cn

 

Step3.右键卸载项目,并编辑。

 

      在    <SupportedCultures>       zh-cn     </SupportedCultures> 中添加

 

Step4.创建langhelper辅助类

 

langhelper.cs

    public class langhelper:INotifyPropertyChanged    {        public string this[string resourceName]        {            get            {                return resource.lang.ResourceManager.GetString(resourceName);            }        }        public event PropertyChangedEventHandler PropertyChanged;        public void UpdateBindings()        {            if (PropertyChanged != null)                PropertyChanged(this, new PropertyChangedEventArgs("Item[]"));        }    }Step5.在mainviewmodel.cs 中添加

 

 

        ///<summary>        /// 语言资源访问器(可绑定)        ///</summary>        public langhelper lang { get; private set; }Step6.确定mainpage.xaml.cs中存在DataContext = App.ViewModel;

Step7.确定app.xaml.cs中存在

 

view sourceprint?private static MainViewModel viewModel = null; 

 

 

 

/// <summary> 

 

/// A static ViewModel used by the views to bind against. 

 

/// </summary> 

 

/// <returns>The MainViewModel object.</returns> 

 

public static MainViewModel ViewModel 

 

 

    get

 

    { 

 

        // Delay creation of the view model until necessary 

 

        if (viewModel == null) 

 

            viewModel = new MainViewModel(); 

 

 

 

        return viewModel; 

 

    } 

 

}

 

Usage:

 

view sourceprint?{Binding lang[appbar_search]} 

 

//其中appbar_search就是你在多语言resx文件中添加的字符串

 

Switch:

 

view sourceprint?CultureInfo info = new CultureInfo("zh-cn");//en-us;..... 

 

Thread.CurrentThread.CurrentCulture = info; 

 

Thread.CurrentThread.CurrentUICulture = info;

view sourceprint?            App.ViewModel.lang.UpdateBindings();

 

  

作者 一帆风顺可能吗

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Windows Phone 项目实战之我的微盘(下)
      • Windows Phone 实用开发技巧(26):对DataTemplate中的元素播放
      • Windows Phone 实用开发技巧(25):Windows Phone读取本地数据
      • Windows Phone 实用开发技巧(27):创建透明Tile
      • Windows Phone 知识锦(12月版)
      • Windows Phone实用开发技巧(31):密码加密
      • Windows Phone 项目实战之我的微盘(上)
      • WP7实例篇之土豆搜索器(2)
      • [翻译]WP7 QuickStart-第七篇-布局
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1