Compartir a través de


Patrón de control de anotación

Describe instrucciones y convenciones para implementar IAnnotationProvider, incluida información sobre las propiedades y los métodos. El patrón de control anotación de se usa para exponer las propiedades de una anotación en un documento.

Un ejemplo es un globo de comentarios que está en el margen de un documento y está conectado a algún texto de documento o a una celda de hoja de cálculo.

En la ilustración siguiente se muestra un ejemplo de una anotación. Para obtener ejemplos de controles que implementan este patrón de control, vea tipos de control y sus patrones de control admitidos.

captura de pantalla que muestra un balon de comentario en un documento

Este tema contiene las secciones siguientes.

Directrices y convenciones de implementación

Al implementar el patrón de control anotación de, tenga en cuenta las siguientes directrices y convenciones:

  • Hay muchos tipos diferentes de anotaciones. El archivo de encabezado UIAutomationClient.h define un conjunto de valores constantes con nombre que identifican los tipos de anotaciones que admite Microsoft UI Automation. Para obtener más información, vea identificadores de tipo de anotación.
  • Si usa AnnotationType_Unknown, debe implementar la propiedad IAnnotationProvider::AnnotationTypeName para permitir que los clientes detecten el nombre del tipo de anotación. No es necesario implementar AnnotationTypeName para un tipo de anotación estándar porque ui Automation proporciona un nombre predeterminado, pero puede implementarlo si necesita invalidar el nombre predeterminado.
  • La propiedad IAnnotationProvider::Author es opcional.
  • La propiedad IAnnotationProvider::D ateTime es opcional.
  • La propiedad IAnnotationProvider::Target es necesaria porque vincula una anotación a un elemento de interfaz de usuario, lo que permite a un cliente navegar desde la anotación de nuevo al elemento de interfaz de usuario al que hace referencia la anotación.
  • Dado que las anotaciones pueden tener muchas formas diferentes, la interfaz IAnnotationProvider no define una propiedad para almacenar el valor o el texto de una anotación. Una anotación simple debe exponer la interfaz de IValueProvider y la propiedad IValueProvider::Value debe devolver un valor de solo lectura que especifique el texto de la anotación. Una anotación más completa debe exponer la interfaz ITextProvider para proporcionar texto más completo a los clientes.
  • Navegar desde un elemento de interfaz de usuario a una anotación del elemento depende del tipo de elemento anotado, como se indica a continuación:
  • Algunos tipos de anotaciones no requieren una implementación completa de la interfaz IAnnotationProvider. Por ejemplo, un indicador simple de error ortográfico podría representarse haciendo que la interfaz ITextRangeProvider devuelva un atributo de texto AnnotationTypes de AnnotationType_SpellingErrory un valor NULL para el atributo de texto AnnotationObjects.
  • Puede ser útil implementar la interfazIAnnotationProvider en un elemento de interfaz de usuario que no está visible. Por ejemplo, podría crear un elemento de automatización de la interfaz de usuario no visible que implemente IAnnotationProvider para proporcionar información extendida sobre un error gramatical.
  • Las anotaciones de un control basado en texto pueden ser complejas si el control contiene comentarios superpuestos. Use las instrucciones siguientes para controlar anotaciones complejas:

Miembros necesarios para IAnnotationProvider

Las siguientes propiedades son necesarias para implementar la interfazIAnnotationProvider.

Miembros necesarios Tipo de miembro Notas
AnnotationTypeId Propiedad Ninguno.
AnnotationTypeName de Propiedad Ninguno.
autor de Propiedad Ninguno.
DateTime Propiedad Ninguno.
de destino de Propiedad Ninguno.

 

Este patrón de control no tiene eventos asociados.

tipos de control y sus patrones de control admitidos

Introducción a los patrones de control de automatización de la interfaz de usuario de

Información general del árbol de automatización de la interfaz de usuario de