最近在做wpf项目时要实现中文和英文的切换,如果做两个语言模板在选择语言时切换,太过于麻烦,可以利用资源字典实现这一功能。

1:首先在WPF项目中添加 en_us.xaml和zh_cn.xaml两个资源文件,

保证资源文件头部有xmlns:s="clr-namespace:System;assembly=mscorlib",里面的键值会加不进去。

2:资源字典完成之后,需要在配置文件中进行配置.

<Application.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary <ResourceDictionary Source="/项目名称;component/Resource/en_us.xaml"/><ResourceDictionary Source="/项目名称;component/Resource/zh_cn.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary></Application.Resources>

3:前端界面的内容用"{DynamicResource 键名}"显示,后台内容用FindResource("键名") as string或者App.Current.Resources["键名"]  as string显示。

4:语言切换按键事件

  private void ChSelect_Click(object sender, RoutedEventArgs e){           List<ResourceDictionary> dictionaryList = new List<ResourceDictionary>();foreach (ResourceDictionary dictionary in Application.Current.Resources.MergedDictionaries){dictionaryList.Add(dictionary);}userLanguage = @"/项目名;component/Resource/zh_cn.xaml";string requestedCulture1 = userLanguage;           ResourceDictionary resourceDictionary1 = dictionaryList.FirstOrDefault(d => d.Source.OriginalString.Equals(requestedCulture1));            Application.Current.Resources.MergedDictionaries.Remove(resourceDictionary1);Application.Current.Resources.MergedDictionaries.Add(resourceDictionary1);}private void EnSelect_Click(object sender, RoutedEventArgs e){       List<ResourceDictionary> dictionaryList = new List<ResourceDictionary>();foreach (ResourceDictionary dictionary in Application.Current.Resources.MergedDictionaries){dictionaryList.Add(dictionary);}userLanguage = @"/项目名;component/Resource/en_us.xaml";string requestedCulture2 = userLanguage;    ResourceDictionary resourceDictionary2 = dictionaryList.FirstOrDefault(d => d.Source.OriginalString.Equals(requestedCulture2));Application.Current.Resources.MergedDictionaries.Remove(resourceDictionary2);Application.Current.Resources.MergedDictionaries.Add(resourceDictionary2);}

5:如果想要APP上次使用的语言。

在该文件中进行如何配置,

用userLanguage = Properties.Settings.Default.Language;获取保存的语言,当语言进行改变时,用

try
            {
                Properties.Settings.Default.Language = userLanguage;
                Properties.Settings.Default.Save();
            }
            catch (Exception)
            {
            }

来保存语言。

WPF程序支持多国语言相关推荐

  1. c 程序多语言,怎样在程序中利用C支持多国语言

    怎样在程序中利用C支持多国语言 本文以emule为例,探讨一下多国语言支持的实现.选择emule,因为它的多国语言支持实现的相当好,可以支持动态切换.而且最关键,它是开源的,可以直接通过源码来研究它的 ...

  2. Make uploadify button text support multiple languages(使uploadify的buttonText支持多国语言)

    uploadify 控件的按钮不支持多国语言,这里介绍如何修改后使其支持多国语言. 1.jquery.uploadify.v2.1.4.js文件 70行 原代码:if (settings.button ...

  3. 字符编码转换类(支持多国语言)

    头文件StrConvertor.h /* * 字符编码转换库,支持多国语言. */ #pragma once #include <string>class CStrConvertor { ...

  4. Qt / Qml 中支持多国语言

    [缘起] 最近找到一个看起来比较好用的开源工具( 然鹅不太会用 ),但整个界面都是英文的. 不过由于是 Qt 写的,所以就尝试自己做些汉化. 然后了解到不少实现多国语言相关的技术( 以及一些坑 (‾◡ ...

  5. Android支持多国语言

    1.如何让App支持多国语言的设置? 为了让以后方便代码的管理维护,推荐将一些尺寸,文字等都使用@string/xxx的引用方式. 为了达到目的,我们先需要知道国际中的各国语言和地区语言的简称,如最下 ...

  6. oracle支持几国语言,Oracle数据库多语言支持

    二.使用Unicode在需要支持多国语言的环境里,使用Unicode可以轻松解决数据存储问题. Oracle中支持以下几种Unicode编码?AL32UTF8 使用1,2,3个字节进行编码,扩展字符集 ...

  7. 柔宇发布“手写神器”柔记樱雪白特别版,支持7国语言手写识别

    深圳2018年9月26日电 /美通社/ -- 9月23日,柔宇科技在2018北京国际设计周期间首次对外发布柔宇科技的"柔性+"办公教育类升级新品 -- 柔记 RoWrite S 智 ...

  8. 高通针对对讲机输入法的字库解决方案 — 支持多国语言字库,多字号字库;...

    数字对讲机通信的优势非常明显,以直通模式为例,DMR采用双时隙工作时,其中一个时隙用来通话.发送短信和传送图像,另一个时隙则可用作控制信道使用,这个时隙可对传输的业务进行监视.暂停.遥毙.强插等控制, ...

  9. iOS中代码支持多国语言切换的实现(Xcode5+iOS7)

    时间2014-03-08 22:14:13 CSDN博客 原文  http://blog.csdn.net/gisxy/article/details/20577881 为了增加程序的用户使用数量,那 ...

  10. oracle支持几国语言,明白ORACLE的多国语言设置

    wlgyhnj(冷风0) 明白ORACLE的多国语言设置,ORACLE多国语言设置是为了支持世界范围的语言与字符集,一般对语言提示,货币形式,排序方式和CHAR,VARCHAR2,CLOB,LONG字 ...

最新文章

  1. ubuntu搭建nginx环境
  2. 除了码农,你还想做什么? | 每日趣闻
  3. 《C语言及程序设计》实践参考——当年第几天
  4. 001_Layout布局
  5. Spring Boot Starters启动器
  6. Excel中配置VBA的工作环境
  7. 如何查看cplex的help文档_用摹客,写出更好的产品文档
  8. linux卸载vs codeblocks,哪个适合linux? GNU make vs cmake vs codeblocks vs qmake
  9. Windows 下的 PHP 编译
  10. mysql数据与Hadoop之间导入导出之Sqoop实例
  11. 投行精英接班后,贵人鸟能否再高飞?
  12. [转载] python查看的统计量_python 描述性统计_Python中的基本统计:描述性统计
  13. [简单分页]C#+JQUERY+ORACLE分页效果 ----转载
  14. 处理ajax表单验证结果,使用 jQuery Form 插件完成带数据验证的 Ajax 表单
  15. 躲开Xilinx官网龟速的下载器
  16. 有赞 插入html,有赞 前端工程师面试题
  17. 报告,开启新副本!经典赛强势回归
  18. Ubuntu apt/apt-get安装sqliteman出现“E: 无法定位软件包”解决方案
  19. mac忘记mysql用户名和密码_mac 下 忘记mysql密码如何找回
  20. u盘作为重要的计算机存储介质,U盘是采用FLASH MEMORY作为存储介质的移动存储设备...

热门文章

  1. JavaScript 基础知识个人总结
  2. ios版的chrome如何保存网页为PDF
  3. [嵌入式linux]RTL8111/RTL8168网卡内核驱动安装
  4. AiChallenger比赛记录之样本不均衡
  5. vue 滑动置顶功能_CSS3 移动端 滚动置顶 吸顶
  6. 方法教程 | Python爬虫:爬取某易云数据并且可视化展示
  7. xrd精修教程_XRD精修教程.pdf
  8. 信息学奥赛一本通C++语言-----1142:单词的长度
  9. astrolog32 java,astrolog32 占星软件
  10. java中新建对象设为null 和new 一个对象的区别