Compartir a través de


Arquitectura en tiempo de diseño

Actualización: noviembre 2007

La ilustración siguiente ofrece una visión general de la arquitectura en tiempo de diseño de .NET Framework.

.NET Framework ofrece interfaces y clases para personalizar el comportamiento de componentes y las interfaces de usuario en un entorno en tiempo de diseño. Normalmente, un entorno en tiempo de diseño incluye un diseñador de formularios para organizar componentes y un explorador de propiedades para configurar los valores de las propiedades de un componente. Un entorno en tiempo de diseño, normalmente, también proporciona servicios en tiempo de diseño a los que se puede obtener acceso y que se pueden utilizar mediante mecanismos en tiempo de diseño.

.NET Framework define interfaces que los programadores pueden utilizar para conseguir funcionalidad personalizada de los componentes en tiempo de diseño. Los mecanismos principales de extensión de la funcionalidad en tiempo de diseño se incluyen en las categorías siguientes: diseñadores, convertidores de tipos y editores de tipos de la interfaz de usuario. Los atributos se aplican a tipos y a miembros de tipo que los asocian con estos proveedores de funcionalidad en tiempo de diseño.

Atributos

Los atributos asocian un tipo o un miembro de un tipo con una clase que extiende el comportamiento en tiempo de diseño. DesignerAttribute asocia un tipo a un diseñador. TypeConverterAttribute asocia un tipo o un miembro de un tipo con un convertidor de tipos. EditorAttribute asocia un tipo o un miembro de un tipo con un editor de tipos de interfaz de usuario. Para obtener información acerca de los atributos en .NET Framework, vea Atributos en tiempo de diseño para componentes y Atributos y compatibilidad en tiempo de diseño.

Diseñadores

Un diseñador puede personalizar el comportamiento de un componente en tiempo de diseño, incluyendo la apariencia, inicialización e interacción con el usuario. Un diseñador puede agregar, eliminar o reemplazar propiedades enumeradas en un explorador de propiedades de un componente seleccionado. Un diseñador puede proporcionar métodos definidos por el usuario que se pueden vincular a ciertos eventos de componente o ejecutar desde un comando de menú personalizado o desde DesignerVerb. Un diseñador también puede utilizar servicios proporcionados por un entorno en tiempo de diseño. Para obtener más información sobre diseñadores, vea Diseñadores personalizados.

Convertidores de tipos

Se puede implementar un convertidor de tipos para convertir valores entre el tipo de datos al que da servicio y otros tipos de datos de los y a los que puede trasladar valores. Un convertidor de tipos también puede proporcionar una lógica que permita la configuración de una propiedad en un explorador de propiedades en tiempo de diseño. Un convertidor de tipos puede proporcionar una lista de valores estándar para una propiedad del tipo de datos al que da servicio en tiempo de diseño en un explorador de propiedades. Un convertidor de tipos también puede generar código de inicialización para inicializar una propiedad en tiempo de diseño. Para obtener información sobre la implementación de un convertidor de tipos, vea Cómo: Implementar un convertidor de tipos.

Editores de tipos con interfaz de usuario

Un editor de tipos de interfaz de usuario puede proporcionar una interfaz de usuario personalizada para modificar el valor de la propiedad y mostrar una representación del valor de la propiedad en tiempo de diseño. Un editor con tipos de interfaz de usuario es específico de tipos y proporciona una interfaz de usuario para configurar propiedades de los tipos a los que da servicio, o tipos derivados que no tienen un atributo que se reemplaza, en tiempo de diseño. Un editor de tipos con interfaz de usuario puede mostrar un formulario Windows Forms o una interfaz de configuración de menú desplegable para configurar una propiedad. Para obtener más información sobre cómo implementar un editor de tipos de interfaz de usuario, vea Cómo: Implementar un editor de tipos de interfaz de usuario.

Nota:

Los convertidores de tipos y los editores de tipos de interfaz de usuario se utilizan tanto en tiempo de diseño como en tiempo de ejecución, mientras que los diseñadores sólo se utilizan en tiempo de diseño.

Tipos relacionados con el diseño

En las tablas siguientes se muestran algunas clases importantes en los espacios de nombres relacionados con el diseño.

System.Drawing.Design

Tipo

Descripción

UITypeEditor

Proporciona una clase base que se puede utilizar para implementar editores de valores.

IToolboxService

Proporciona métodos y propiedades para administrar y consultar el Cuadro de herramientas en el entorno de desarrollo.

ToolboxItem

Proporciona una implementación base de un elemento del cuadro de herramientas.

System.ComponentModel.Design

Tipo

Descripción

DesignerActionList

Proporciona la clase base para los tipos que definen una lista de elementos utilizada para crear un panel de etiquetas inteligentes.

DesignSurface

Presenta una interfaz de usuario para el diseño de componentes.

IDesigner

Proporciona el marco básico para generar un diseñador personalizado.

IRootDesigner

Proporciona funcionalidad para las tecnologías de vista de diseñador de nivel raíz.

IExtenderProviderService

Proporciona una interfaz para agregar y quitar proveedores extensores en tiempo de diseño.

UndoEngine

Especifica la funcionalidad genérica deshacer/rehacer.

System.Windows.Forms.Design

Tipo

Descripción

IWindowsFormsEditorService

Proporciona una interfaz para que los editores de tipos de interfaz de usuario puedan mostrar formularios Windows Forms o un control en un área desplegable de un control PropertyGrid en modo de diseño.

ControlDesigner

Clase de diseñador base para ampliar el comportamiento en modo de diseño de Control.

DocumentDesigner

Clase del diseñador base para ampliar el comportamiento en modo de diseño de Control, que es compatible con controles anidados y recibe mensajes de desplazamiento, así como para proporcionarle una vista en modo de diseño de nivel raíz.

System.Windows.Forms.Design.Behavior

Tipo

Descripción

BehaviorService

Administra la interfaz de usuario en el diseñador.

Behavior

Representa los objetos Behavior que son administrados por BehaviorService.

Adorner

Administra una colección de objetos Glyph relacionados con la interfaz de usuario. Esta clase no puede heredarse.

Glyph

Representa una entidad de interfaz de usuario (IU) única administrada por Adorner.

Servicios en tiempo de diseño

.NET Framework proporciona un conjunto de servicios en tiempo de diseño que pueden extender las capacidades de un diseñador. Estos servicios se pueden obtener utilizando el método GetService de un componente ubicado en modo de diseño. Se pueden agregar tipos de servicio propios a los que se puede obtener acceso desde un proyecto de modo de diseño mediante el método AddService de la interfaz de servicio IDesignerHost.

La interfaz IComponentChangeService permite al diseñador recibir notificaciones sobre cuándo se cambian, se agregan o se eliminan componentes del entorno en tiempo de diseño.

La interfaz IDesignerEventService permite a un diseñador recibir notificaciones cuando se agregan o eliminan diseñadores del entorno en tiempo de diseño, así como cuando cambia la selección del componente actual.

La interfaz IDesignerFilter permite al diseñador agregar y filtrar el conjunto de propiedades que se muestran en un explorador de propiedades de su componente.

La interfaz IDesignerHost proporciona una interfaz para agregar y recuperar servicios, controlar eventos relacionados con el estado del diseñador, detectar si un diseñador se está cargando en ese momento y administrar componentes o transacciones del diseñador. Las transacciones del diseñador permiten que se produzcan secuencias de acciones que impidan que la vista en tiempo de diseño actualice la pantalla hasta que finalice una secuencia de acciones para mejorar el rendimiento, mientras que suministran un mecanismo que permite que se deshagan las acciones del componente de una transacción y que se restaure el estado anterior

La interfaz IDesignerOptionService permite que un diseñador obtenga y establezca valores de propiedades mostradas en la cuadrícula de propiedades del Diseñador de Windows Forms al que se puede tener acceso desde el elemento de menú Opciones ubicado en el menú Herramientas del entorno de Visual Studio. La clase DesignerOptionService amplía la flexibilidad de la consulta de opciones.

La interfaz IDictionaryService permite a un diseñador utilizar una colección basada en claves para los datos y pares de claves definidos por el usuario a los que se puede obtener acceso mediante una clave o un valor.

La interfaz IEventBindingService permite a un diseñador exponer eventos para un componente en un explorador de propiedades en tiempo de diseño mientras está seleccionado el componente.

La interfaz IExtenderListService permite a un diseñador obtener los proveedores extensores activos en el entorno en tiempo de diseño. La interfaz IExtenderProviderService permite a un diseñador agregar o quitar proveedores extensores en tiempo de diseño.

La interfaz IHelpService permite a un diseñador crear y quitar contextos de servicios de ayuda, crear y quitar atributos de contexto de ayuda y mostrar temas de ayuda mediante palabras claves o URL.

La interfaz IInheritanceService permite a un diseñador buscar componentes de clases derivadas e identificar los atributos de herencia de cada uno.

La interfaz IMenuCommandService permite al diseñador buscar, agregar, quitar o invocar comandos de menú en el entorno en tiempo de diseño.

La interfaz IReferenceService permite a un diseñador obtener el nombre de un objeto por referencia, una referencia a un objeto por nombre, una referencia al elemento primario de un componente especificado, o referencias a objetos de un tipo especificado en el proyecto actual en modo de diseño.

La interfaz IResourceService permite a un diseñador obtener un lector de recursos o un sistema de escritura de recursos para una clase CultureInfo especificada.

La interfaz IRootDesigner permite a un diseñador reemplazar la vista principal del diseñador con una presentación de la vista del diseñador personalizada. El diseñador debe implementar la interfaz IRootDesigner para un componente.

La interfaz ISelectionService permite a un diseñador obtener un conjunto de referencias a los componentes seleccionados actualmente, establecer la selección en un componente o conjunto de componentes y determinar si está seleccionado algún componente.

La interfaz IServiceContainer permite a un diseñador agregar o quitar servicios que pueden ser utilizados por otros componentes o diseñadores.

La interfaz ITypeDescriptorFilterService permite a un componente o diseñador filtrar los atributos, eventos o propiedades expuestos por cualquier componente en tiempo de diseño. La interfaz ITypeDescriptorFilterService debe ser implementada por una clase que se pueda agregar como servicio utilizando el método AddService del sitio Site de un componente ubicado en modo de diseño.

La interfaz ITypeResolutionService permite a un diseñador agregar una referencia a un ensamblado del proyecto, obtener un tipo o ensamblado por el nombre y obtener la ruta de un ensamblado especificado.

Las clases DesignerActionService y DesignerActionUIService implementan la función de etiqueta inteligente en los diseñadores personalizados. Para obtener más información, vea Comandos del diseñador y modelo de objetos de DesignerAction para formularios Windows Forms.

BehaviorService administra la interfaz de usuario en un diseñador. Proporciona una manera uniforme de manipular en tiempo de diseño elementos de la interfaz de usuario como, por ejemplo, eventos relacionados con el mouse (ratón), comandos de menú y operaciones de arrastrar y colocar de OLE. Para obtener más información, vea Información general sobre servicios de comportamiento.

La clase CodeDomComponentSerializationService serializa un conjunto de componentes u objetos serializables en un almacén de serialización. Para obtener más información, vea Información general sobre serialización de diseñadores.

Vea también

Tareas

Cómo: Implementar un convertidor de tipos

Cómo: Implementar un editor de tipos de interfaz de usuario

Cómo: Obtener acceso a servicios en tiempo de diseño

Cómo: Obtener acceso a las funciones en tiempo de diseño de formularios Windows Forms

Conceptos

Atributos y compatibilidad en tiempo de diseño

Comandos del diseñador y modelo de objetos de DesignerAction para formularios Windows Forms

Información general sobre servicios de comportamiento

Información general sobre serialización de diseñadores

Otros recursos

Ampliar compatibilidad en tiempo de diseño

Diseñadores personalizados