



























SourceCode:
简介:
MSDN 推荐了一个WPF多语言方案--使用Locbaml ,是个半成品,而且也不够灵活.
此多语方案修改自:
该解决方案:
因为项目需求,我拓展了该代码,增加了功能:
1.使用方式:
在XAML 中使用:以字符串和 图片为例:
<TextBlock Height="23" HorizontalAlignment="Left" Margin="98,24,0,0" Name="textBlock1"
Text="{Resx Node={x:Static e:MainWindow.ThemeNode}, Key=lbltxt}"VerticalAlignment="Top"Width="199"/>
<Image Height="150" HorizontalAlignment="Left" Margin="98,87,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="251"
Source="{Resx Node=WpfLocalizeTest.MainWindow, Key=flag}"/>
在代码中使用:
ResManager.Instance.GetResource(nodename, key);
Theme文件夹结构:
en-us 为theme名称. WpfLocalizeTest是程序集文件名,下面Resource.xml为 多语言资源文件

Resource.xml:
<?xml version="1.0" encoding="UTF-8"?>
<res>
<node name="MainWindow">
<item key="lbltxt" type="string" des="这是注释" value="这是中文界面"/>
<item key="flag" type="image" des="这是注释" value="flag.jpg"/>
</node>
</res>
Resx 为扩展标记,其中Node为人为约定 :WpfLocalizeTest.MainWindow
前半部分WpfLocalizeTest 是当前dll或exe 程序集文件名称.
后面部分 MainWinow是 xml结点名称(也可以没有,如果没有的话,item直接存放在res结点下.).
2.设计时支持:
(此处有个问题:需要写死设计时的路径.有没有更好的方法在设计时获取到文件路径?)


此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。