如何:部署自定义控件和设计时程序集

在为自定义 WPF 和 Silverlight 控件创作设计体验时,通常遵循相似的工作流。 本主题描述如何部署自定义控件和设计时程序集。

提示

有关演示如何实现自定义设计时体验的示例,请参见 WPF and Silverlight Designer Extensibility Samples(WPF 和 Silverlight 设计器扩展性示例)。

创建和部署设计时程序集

创建和部署设计时程序集

  1. 实现 WPF 或 Silverlight 控件。

  2. 确定您的设计时实现面向哪个版本的 WPF 设计器框架,并确定您的设计时程序集将由哪些设计器工具加载。 例如,可以面向 4.0 版本的 WPF 设计器框架并创作特定于 Visual Studio 2010(或更高版本)和 Expression Blend 3(或更高版本)的设计体验。

  3. 为每个设计时程序集创建相应的项目。 按照部署自定义控件和设计时程序集中描述的约定命名这些项目。 例如,步骤 2 中的方案可以包含具有以下名称的项目。

    命名约定

    说明

    <控件库>.Design.4.0.dll

    常用的设计时实现。

    <控件库>.Expression.Design.4.0.dll

    用特定于 Expression Blend 的元数据重写常用的设计时实现。

    <控件库>.VisualStudio.Design.4.0.dll

    用特定于 Visual Studio 的元数据重写常用的设计时实现。

  4. 将每个设计时项目的生成输出定向到一个公用文件夹。 此文件夹可以是包含自定义控件的文件夹,也可以是名为 Design 的子文件夹。

  5. 向每个设计时项目中添加一个用于实现 IProvideAttributeTable 接口的类。 此类的名称通常为 Metadata 或 RegisterMetadata。 在此类中,将指定自定义设计时中所实现的功能。 您还可以指定哪些类显示在工具箱的**“选择项”**对话框中。

  6. 向每个设计时程序集应用 ProvideMetadataAttribute,并使用该属性指定相应的 RegisterMetadata 类。

  7. 通过使用 AssemblyFoldersEx 注册过程来注册控件及其相关设计时程序集。 AssemblyFoldersEx 是注册表中的一个位置,供第三方供应商存储他们所支持的每个框架版本的路径。 设计时解决方案可以在该注册表位置中查找引用程序集。 注册表脚本可以指定要显示在工具箱中的控件。 有关更多信息,请参见部署自定义控件和设计时程序集

请参见

参考

AttributeTable

ProvideMetadataAttribute

其他资源

部署自定义控件和设计时程序集

Visual Studio Extension Deployment

提供设计时元数据

了解 WPF 设计器扩展性

基本扩展性概念

WPF and Silverlight Designer Extensibility Samples