通过资源文件实现WPF国际化。
- 创建资源文件Resource.resx、Resource.en-US.resx
- 因为资源文件自动创建的类构造函数是internal类型,WPF无法直接实例化,所以需要创建一个类,命名为Resources.cs继承资源文件类,如下所示:
public class Resources:Resource
{
public Resources()
{
}
}
3.在app.xmal文件中引入Resources类
<ResourceDictionary>
<local:Resources x:Key="Res" d:IsDataSource="True" />
</ResourceDictionary>
注意:Resources类在当前项目命名空间下,才可直接用local引入资源类,否则需要先引入Resources类的命名空间。
- 之后就可以在WPF窗体中使用在资源文件中添加的字符串,如下所示:
<TextBlock Text="{Binding Source={StaticResource Res},Path=productName}" />
- 切换语言,代码如下:
//切换中文
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CN");
//切换英文
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");