更新:2007 年 11 月
本演练演示如何使用 Visual Studio Windows Presentation Foundation (WPF) 设计器从附属程序集中加载资源字符串。这简化了 WPF 应用程序的本地化。
在本演练中,您将执行下列任务:
- 创建项目。 
- 启用附属程序集。 
- 创建和访问资源字符串。 
完成本演练后,您将具有一个从附属程序集中检索字符串的简单应用程序。
| .gif) 说明: | 
|---|
| 显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于您的当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置。 | 
先决条件
您需要以下组件来完成本演练:
- Visual Studio 2008。
创建项目
第一步是为应用程序创建项目。
创建项目
- 使用 Visual Basic 或 Visual C# 新建一个名为 ResourceTest 的 WPF 应用程序项目。有关更多信息,请参见 如何:创建新的 WPF 应用程序项目。 - Window1.xaml 在 WPF 设计器中打开。 
- 将 Button 控件从工具箱中拖动到设计图面。 
- 双击此按钮为按钮控件创建一个 Click 事件处理程序。 
启用附属程序集
通过对 AssemblyInfo 和项目文件进行一些细小的更改来启用附属程序集。
启用附属程序集
- 在代码编辑器中打开 AssemblyInfo.cs 或 AssemblyInfo.vb。若要在解决方案资源管理器中查看文件,可能需要单击“显示所有文件”。 
- 取消对以下行的注释。 - //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]- '<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
- 保存解决方案。 
- 在解决方案资源管理器中,右击 ResourceTest 项目,并选择“卸载项目”。 - Visual Studio 将卸载 ResourceTest 项目。 
- 在解决方案资源管理器中,右击 ResourceTest 项目,并选择“编辑 ResourceTest.csproj”或“编辑 ResourceTest.vbproj”。 - 项目文件将在 XML 编辑器中打开。 
- 在与其他 <PropertyGroup> 元素相同的级别插入以下 XML。 - <PropertyGroup> <UICulture>en-US</UICulture> </PropertyGroup>
- 保存并关闭文件。 
- 在解决方案资源管理器中,右击 ResourceTest 项目,并选择“重新加载项目”。 
- 在解决方案资源管理器中,将默认 RESX 文件的名称从 Resources.resx 改为 Resources.zh-cn.resx。 
- 在“属性”窗口中,清除资源文件的“自定义工具”值。 
在附属程序集中创建一个资源字符串
现在您将在资源文件中创建一个字符串。
在附属程序集中创建一个资源字符串
- 在解决方案资源管理器中,双击 Resources.zh-cn.resx。 - Resources.zh-cn.resx 将在资源设计器中打开。 
- 将默认字符串的名称从“String1”改为 helloWorldString。 
- 将“helloWorldString”的值改为 Hello world。 
- 保存并关闭资源编辑器。 
访问资源字符串
使用 ResourceManager 类,在附属程序集中访问该字符串。
访问资源字符串
- 在代码编辑器中打开 Window1.xaml.cs 或 Window1.xaml.vb。 
- 在 Window1.xaml.cs 或 window1.xaml.vb 的开头插入以下代码。 - using System.Reflection; using System.Resources;- Imports System.Reflection Imports System.Resources
- 将下面的代码插入到 button1_Click 事件处理程序中。 - ResourceManager rm = new ResourceManager( "ResourceTest.Properties.Resources", Assembly.GetExecutingAssembly()); MessageBox.Show(rm.GetString("helloWorldString"));- Dim rm As New ResourceManager( _ "ResourceTest.Resources", _ Assembly.GetExecutingAssembly()) MessageBox.Show(rm.GetString("helloWorldString"))
- 按 F5 生成并运行应用程序。 
- 单击按钮查看从附属资源加载的字符串值。 
- 打开 Debug/zh-cn 文件夹查看附属程序集,该程序集名为 ResourceTest.resources.dll。