本文將討論在WPF中一種較為方便的本地化方法。
由于在項(xiàng)目中要實(shí)現(xiàn)本地化,所以我在網(wǎng)上查找相關(guān)的解決方案。通過一系列調(diào)研,發(fā)現(xiàn)實(shí)現(xiàn)本地化的方法主要有以下三種:
通過編譯項(xiàng)目以設(shè)置 x:Uid 并使用 LocBaml 工具實(shí)現(xiàn);
通過 DynamicResource 實(shí)現(xiàn);
通過 Resx 文件實(shí)現(xiàn)
其中第一種是官方介紹的方法,考慮到實(shí)現(xiàn)步驟略為復(fù)雜,所以直接忽略;
第二種方式的實(shí)現(xiàn),主要是在程序中添加 Resource Dictionary 類型的文件,并在其中放入本地化資源字符串;在 XAML 代碼中,直接使用 {DynamicResource XXXX} 來實(shí)現(xiàn);這種方法比較方便,不過它也有兩個(gè)缺點(diǎn):
在 XAML 中,引用 DynamicResource 的屬性必須為依賴屬性,否則會出錯(cuò);
在 C# 代碼中引用稍微有點(diǎn)麻煩,需要從 Resource Dictionary 中獲取并轉(zhuǎn)化為字符串
其中第一點(diǎn)可以說是致命缺點(diǎn),我曾在項(xiàng)目中添加了一個(gè)第三方控件,其 Header 屬性并不是依賴屬性,所以不能使用這種方式;不是依賴屬性,當(dāng)然,也就更不能使用綁定(Binding)來設(shè)置了。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26