关于让WPF软件界面支持全球化和本地化
来源:互联网 发布:绿色傲剑升级数据 编辑:程序博客网 时间:2024/06/05 00:58
关于让WPF软件界面支持全球化和本地化
周银辉
有朋友询问如何让WPF应用能够提供多语言支持(中文,英文,日文.....),我的建议是:(1)抛弃WinForm时代的资源存储方式 (2)利用WPF的动态资源特性.
下面简单介绍一下并打造一个简单的DEMO:
1,语言资源文件怎样存储
我们知道以前(WPF以前)我们将界面上的各国语言分别存储在.resx类型的文件中,然后利用ResourceManager来得到相应资源并根据当地的CultureInfo来给界面文本赋值.这是可行的.但在WPF中存在的一个问题是:我们必须为每个控件在后台代码中来Code这些逻辑,因为XAML是找不到.resx类型中的资源的.但WPF中绝大多数界面元素都是在XAML中定义的这是一件很麻烦的事情.所以我们应该抛弃这样的做法.
WPF中的资源继承了以前的多种存储形式,但可以在XAML和C#(或其他)中通行的有两中,一个是Content,一个是Resource,前者是"内容",既是松散的资源链接,后者是被编译并嵌入的资源,注意,你在设置资源文件属性的时候会发现还有一个很让人混淆的Embedded Resource,这也是内嵌的资源,但其被压缩为二进制形式,既和以前WinForm的内嵌资源相同,Resource和Embedded Resource在编码上的区别是前者可以通过Uri找到,这是XAML需要的方式,后者可以通过Stream找到,这可以通过编写c#代码来查找资源.
所以,在这里看来Content是我们保存语言资源的良好方式,由于其是松散的资源链接,所以为应用程序添加新的语言包时就可以不重新编译了,只需将对象的语言文件拷贝到指定的文件夹即可.
2,界面元素如何链接到语言文本
这是StaticResource 和 DynamicResource要做的事情,比如:
周银辉
有朋友询问如何让WPF应用能够提供多语言支持(中文,英文,日文.....),我的建议是:(1)抛弃WinForm时代的资源存储方式 (2)利用WPF的动态资源特性.
下面简单介绍一下并打造一个简单的DEMO:
1,语言资源文件怎样存储
我们知道以前(WPF以前)我们将界面上的各国语言分别存储在.resx类型的文件中,然后利用ResourceManager来得到相应资源并根据当地的CultureInfo来给界面文本赋值.这是可行的.但在WPF中存在的一个问题是:我们必须为每个控件在后台代码中来Code这些逻辑,因为XAML是找不到.resx类型中的资源的.但WPF中绝大多数界面元素都是在XAML中定义的这是一件很麻烦的事情.所以我们应该抛弃这样的做法.
WPF中的资源继承了以前的多种存储形式,但可以在XAML和C#(或其他)中通行的有两中,一个是Content,一个是Resource,前者是"内容",既是松散的资源链接,后者是被编译并嵌入的资源,注意,你在设置资源文件属性的时候会发现还有一个很让人混淆的Embedded Resource,这也是内嵌的资源,但其被压缩为二进制形式,既和以前WinForm的内嵌资源相同,Resource和Embedded Resource在编码上的区别是前者可以通过Uri找到,这是XAML需要的方式,后者可以通过Stream找到,这可以通过编写c#代码来查找资源.
所以,在这里看来Content是我们保存语言资源的良好方式,由于其是松散的资源链接,所以为应用程序添加新的语言包时就可以不重新编译了,只需将对象的语言文件拷贝到指定的文件夹即可.
2,界面元素如何链接到语言文本
这是StaticResource 和 DynamicResource要做的事情,比如:
<Button Content="{DynamicResource OK}"/>
文章来源于 http://www.cnblogs.com/zhouyinhui 版权归原作者所有
文章来源于 http://www.cnblogs.com/zhouyinhui 版权归原作者所有
- 关于让WPF软件界面支持全球化和本地化
- 关于让WPF软件界面支持全球化和本地化
- 关于让WPF软件界面支持全球化和本地化
- 关于让WPF软件界面支持全球化和本地化
- 谈全球化软件测试和本地化测试
- 全球化和本地化
- scriptManager和全球化和本地化
- ASP.NET 全球化和本地化
- ASP.NET 全球化和本地化
- ASP.NET 全球化和本地化
- MySQL必知必会-23MySQL全球化和本地化
- ASP.NET全球化与本地化 c#多语言的支持
- [文章推荐] 软件内容全球化与本地化 & 微软术语管理
- 【MySQL】事务处理 全球化和本地化(字符集和校对)
- 本地化、全球化、国际化测试
- 从Asp.net实现资源全球化和本地化
- 全球化支持
- 让WPF和SL控件同时支持绑定和赋值
- Got my offer from GE
- XPath语法备忘
- WPF Can Do
- 在WPF中自定义控件(3) CustomControl (上)
- DEV—WOW 大赛信息
- 关于让WPF软件界面支持全球化和本地化
- Expression Blend 2 September Preview 发布
- 在WPF中自定义控件(2) UserControl
- [WPF实践之路] 目录导航
- 自定义WPF面板
- 在WPF中自定义控件(1)
- 为WPF项目创建单元测试
- 用WPF轻松打造iTunes CoverFlow效果
- WPF中使用调度程序构建反应速度更快的应用程序
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
重庆果树苗批发基地
果树苗价格表
果树苗供应
山楂果树苗
黄皮果树苗价格
果树苗多少钱一颗
果树苗批发价格
柚子苗价格
广东果树苗
果树苗销售
黑龙江果树苗
新疆果树苗
抗寒果树苗
重庆果树苗批发
矮化果树苗
各种果树苗批发
哪里有卖果树苗
哪有果树苗卖
供应果树苗
果树苗哪里买
哪有卖果树苗的
果树苗厂家
果树苗供应商
果树苗图片
优良果树苗
江西果树苗批发
果树苗网站
果树苗淘宝
淘宝果树苗
那里卖果树苗
果树苗那里有
桑树苗价格
桃树栽培技术
果树苗种植方法
桃树栽培新技术
果树草
草果树
栗园酒店
百年栗园
百年栗园有机柴公鸡
确山果桑