Compartir a través de


Cómo: Implementar un control personalizado y ensamblados en tiempo de diseño

Al crear experiencias de diseño para los controles personalizados de WPF y Silverlight se suele seguir un flujo de trabajo similar. En este tema se describe cómo implementar un control personalizado y los ensamblados en tiempo de diseño.

Nota

Para obtener ejemplos en los que se muestra cómo implementar las experiencias en tiempo de diseño personalizadas, vea WPF and Silverlight Designer Extensibility Samples.

Crear e implementar ensamblados en tiempo de diseño

Para crear e implementar ensamblados en tiempo de diseño

  1. Implemente el control de WPF o Silverlight.

  2. Decida a qué versiones del marco de WPF Designer se va a destinar la implementación en tiempo de diseño, así como las herramientas del diseñador que cargarán los ensamblados en tiempo de diseño. Por ejemplo, puede destinarla a la versión 4.0 del marco de WPF Designer y crear experiencias de diseño específicas de Visual Studio 2010 o posterior y Expression Blend 3 o posterior.

  3. Cree los proyectos correspondientes para cada uno de los ensamblados en tiempo de diseño. Asigne nombre a los proyectos según la convención descrita en Implementar un control personalizado y ensamblados en tiempo de diseño. Por ejemplo, el escenario del paso 2 puede tener proyectos con los siguientes nombres.

    Convención de nomenclatura

    Descripción

    <BibliotecaDeControles>.Design.4.0.dll

    Implementación en tiempo de diseño común.

    <BibliotecaDeControles>.Expression.Design.4.0.dll

    Invalida la implementación en tiempo de diseño común con metadatos específicos de Expression Blend.

    <BibliotecaDeControles>.VisualStudio.Design.4.0.dll

    Invalida la implementación en tiempo de diseño común con metadatos específicos de Visual Studio.

  4. Dirija el resultado de la compilación de cada proyecto en tiempo de diseño a una carpeta común. Esta carpeta puede ser la misma que contiene los controles personalizados o bien una subcarpeta denominada Design.

  5. Agregue una clase que implemente la interfaz IProvideAttributeTable a cada uno de los proyectos en tiempo de diseño. Esta clase se suele denominar Metadata o RegisterMetadata. En ella se especifican las características implementadas en el tiempo de diseño personalizado. También se especifican las clases que aparecen en el cuadro de diálogo Elegir elementos del cuadro de herramientas.

  6. Aplique el objeto ProvideMetadataAttribute a cada uno de los ensamblados en tiempo de diseño y úselo para especificar la clase RegisterMetadata correspondiente.

  7. Registre el control y los ensamblados en tiempo de diseño asociados mediante el procedimiento de registro de AssemblyFoldersEx. AssemblyFoldersEx es una ubicación del Registro donde los proveedores de terceros almacenan las rutas de acceso para cada versión de .NET Framework que admiten. La resolución en tiempo de diseño puede buscar en esta ubicación del Registro para encontrar los ensamblados de referencia. En el script de Registro se pueden especificar los controles que desea que aparezcan en el cuadro de herramientas. Para obtener más información, vea Implementar un control personalizado y ensamblados en tiempo de diseño.

Vea también

Referencia

AttributeTable

ProvideMetadataAttribute

Otros recursos

Implementar un control personalizado y ensamblados en tiempo de diseño

Visual Studio Extension Deployment

Proporcionar metadatos en tiempo de diseño

Introducción a la extensibilidad de WPF Designer

Conceptos de extensibilidad básica

WPF and Silverlight Designer Extensibility Samples