如何:部署自定义控件和设计时程序集
在为自定义 WPF 和 Silverlight 控件创作设计体验时,通常遵循相似的工作流。 本主题描述如何部署自定义控件和设计时程序集。
提示
有关演示如何实现自定义设计时体验的示例,请参见 WPF and Silverlight Designer Extensibility Samples(WPF 和 Silverlight 设计器扩展性示例)。
创建和部署设计时程序集
创建和部署设计时程序集
实现 WPF 或 Silverlight 控件。
确定您的设计时实现面向哪个版本的 WPF 设计器框架,并确定您的设计时程序集将由哪些设计器工具加载。 例如,可以面向 4.0 版本的 WPF 设计器框架并创作特定于 Visual Studio 2010(或更高版本)和 Expression Blend 3(或更高版本)的设计体验。
为每个设计时程序集创建相应的项目。 按照部署自定义控件和设计时程序集中描述的约定命名这些项目。 例如,步骤 2 中的方案可以包含具有以下名称的项目。
命名约定
说明
<控件库>.Design.4.0.dll
常用的设计时实现。
<控件库>.Expression.Design.4.0.dll
用特定于 Expression Blend 的元数据重写常用的设计时实现。
<控件库>.VisualStudio.Design.4.0.dll
用特定于 Visual Studio 的元数据重写常用的设计时实现。
将每个设计时项目的生成输出定向到一个公用文件夹。 此文件夹可以是包含自定义控件的文件夹,也可以是名为 Design 的子文件夹。
向每个设计时项目中添加一个用于实现 IProvideAttributeTable 接口的类。 此类的名称通常为 Metadata 或 RegisterMetadata。 在此类中,将指定自定义设计时中所实现的功能。 您还可以指定哪些类显示在工具箱的**“选择项”**对话框中。
向每个设计时程序集应用 ProvideMetadataAttribute,并使用该属性指定相应的 RegisterMetadata 类。
通过使用 AssemblyFoldersEx 注册过程来注册控件及其相关设计时程序集。 AssemblyFoldersEx 是注册表中的一个位置,供第三方供应商存储他们所支持的每个框架版本的路径。 设计时解决方案可以在该注册表位置中查找引用程序集。 注册表脚本可以指定要显示在工具箱中的控件。 有关更多信息,请参见部署自定义控件和设计时程序集。