当前位置: 首页 > 编程语言 > .NET综合 > 正文

WPF学习之资源-Resources(9)

时间:2010-07-18 cnblogs zlgcool Allan

7.Localization – 本地化

本地化和换肤其实都是在用ResourceDictionary来做文章的。说白了,Localization就是用不同语言下取不同事先设定好的资源来显示而已。要做到这些很容易,4步就可以轻松实现:

· 定义Resource Dictionary来包含不同语言下要显示的资源项。

创建单独的Resource Dictionary文件,并以语言本身名字来命名,并把en-US来作为默认语言环境(这里顺便就命名为default.xaml了)

Default.xaml

<ResourceDictionary xmlns=""
  xmlns:x=""
  xmlns:sys="clr-namespace:System;assembly=mscorlib">

  <sys:String x:Key="Title_PM">Project Manager</sys:String>
  <sys:String x:Key="Title_PL">Project Lead</sys:String>
  <sys:String x:Key="Title_SD">Senior Developer</sys:String>
  <sys:String x:Key="Title_SA">System Architecture</sys:String>

</ResourceDictionary>

zh-CN.xaml (注意对.NET命名空间的引用)

<ResourceDictionary xmlns=""
  xmlns:x=""
  xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <sys:String x:Key="Title_PM">项目经理</sys:String>
  <sys:String x:Key="Title_PL">项目主管</sys:String>
  <sys:String x:Key="Title_SD">资深开发工程师</sys:String>
  <sys:String x:Key="Title_SA">系统架构师</sys:String>
</ResourceDictionary>

· 给应用程序添加默认资源:其实就是将默认的Resource Dictionary加入到Application的全局Resource里边。

<Application x:Class="WpfApplication1.App"
  xmlns=""
  xmlns:x=""
  StartupUri="Window1.xaml">
  <Application.Resources>

    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Language\default.xaml"/>
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>