Introducción de datos por el usuario y arquitectura de presentación
Al generar un diseñador, hay varios problemas que se deben resolver con respecto a los datos que escribe el usuario. Por ejemplo, acciones como controlar el foco del elemento, enrutar el mouse y las acciones del teclado, agregar adornos e invocar comandos deben tener un mecanismo común y centralizado que controle la entrada de datos por parte del usuario. En WPF Designer for Visual Studio, la clase DesignerView proporciona la administración de todos estos problemas y es la clase que representa la superficie de diseño principal.
Adornos
Los adornos son elementos visuales que sólo aparecen en la Vista de diseño y que se utilizan para facilitar el proceso de diseño. Un ejemplo de adorno son las asas de ajuste de tamaño que hay alrededor de los controles cuando se seleccionan. La clase DesignerView contiene una colección Adorners donde los adornos se pueden agregar y utilizar en la Vista de diseño. Para obtener más información sobre adornos, vea Arquitectura de los adornos.
Enrutar la entrada de datos
La clase DesignerView proporciona un método estándar y centralizado para enrutar los datos que escribe el usuario. El proceso de entrada de datos se compone de los siguientes pasos generalizados:
Se produce el evento de entrada de datos.
Se realiza la prueba de posicionamiento.
Se busca un enlace de entrada de datos.
Se ejecuta el enlace de comandos.
En las siguientes secciones se examinan estos pasos con mayor detalle.
Se produce el evento de entrada de datos
Cuando tiene lugar un evento de entrada de datos, se enruta a la clase DesignerView, donde se realiza la prueba de posicionamiento.
Se realiza la prueba de posicionamiento.
Cuando un evento de entrada de datos llega a la instancia de DesignerView, se examina la prueba de posicionamiento. La prueba de posicionamiento examina la representación visual en la capa del adorno y en la jerarquía de objetos, y devuelve la siguiente información:
El adorno sobre el que se encuentra el mouse.
El elemento del modelo al que está asociado el adorno.
La representación visual sobre la que se encuentra el mouse, si no es un adorno.
El elemento del modelo asociado a la representación visual.
Se busca un enlace de entrada de datos.
Después de la prueba de posicionamiento, DesignerView intenta hacer coincidir un evento de entrada con un enlace de entrada. El algoritmo que se utiliza para buscar un enlace de entrada varía en función del estado actual del diseñador:
Si la herramienta actualmente activa tiene una tarea activa, sólo se busca un enlace que coincida con el evento de entrada en los enlaces de entrada de esa tarea.
Para la entrada del mouse, DesignerView examina el adorno al que se ha realizado la prueba de posicionamiento buscando una tarea que tenga una entrada de enlace que coincida con el evento de entrada. Si se ha tomado una captura, el adorno utilizado es el adorno al que se realizó la prueba de posicionamiento cuando se tomó la captura. Si no se ha realizado la prueba de posicionamiento a ningún adorno, DesignerView guiará los enlaces de entrada de las tareas contenidas en la herramienta activa.
Para las acciones del teclado, DesignerView guía los enlaces de entrada de las tareas contenidas en la herramienta activa. Los enlaces de acciones del teclado se omiten en los adornos.
Nota
No se omiten las teclas modificadoras para la entrada del mouse. Las teclas modificadoras funcionan bien con la entrada del mouse.
Se ejecuta el enlace de comandos.
Una vez obtenido un enlace de entrada, se llama al método Execute en el comando del enlace. Sin embargo, los comandos son interfaces, por lo que el comportamiento de Execute depende de la implementación de ese comando.