本文将讨论在WPF中一种较为方便的本地化方法。
由于在项目中要实现本地化,所以我在网上查找相关的解决方案。通过一系列调研,发现实现本地化的方法主要有以下三种:
通过编译项目以设置 x:Uid 并使用 LocBaml 工具实现;
通过 DynamicResource 实现;
通过 Resx 文件实现
其中第一种是官方介绍的方法,考虑到实现步骤略为复杂,所以直接忽略;
第二种方式的实现,主要是在程序中添加 Resource Dictionary 类型的文件,并在其中放入本地化资源字符串;在 XAML 代码中,直接使用 {DynamicResource XXXX} 来实现;这种方法比较方便,不过它也有两个缺点:
在 XAML 中,引用 DynamicResource 的属性必须为依赖属性,否则会出错;
在 C# 代码中引用稍微有点麻烦,需要从 Resource Dictionary 中获取并转化为字符串
其中第一点可以说是致命缺点,我曾在项目中添加了一个第三方控件,其 Header 属性并不是依赖属性,所以不能使用这种方式;不是依赖属性,当然,也就更不能使用绑定(Binding)来设置了。
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26