Modello di controllo annotazione

Descrive linee guida e convenzioni per l'implementazione di IAnnotationProvider, incluse informazioni sulle proprietà e sui metodi. Il modello di controllo Annotazione viene usato per esporre le proprietà di un'annotazione in un documento.

Un esempio è un palloncino di commento che si trova nel margine di un documento ed è connesso a un testo del documento o a una cella del foglio di calcolo.

La figura seguente mostra un esempio di annotazione. Per esempi di controlli che implementano questo modello di controllo, vedere Tipi di controllo e modelli di controllo supportati.

schermata che mostra un baloon di commento in un documento

In questo argomento sono contenute le sezioni seguenti.

Linee guida e convenzioni di implementazione

Quando si implementa il modello di controllo annotazione , prendere nota delle linee guida e delle convenzioni seguenti:

  • Esistono molti tipi diversi di annotazioni. Il file di intestazione UIAutomationClient.h definisce un set di valori costanti denominati che identificano i tipi di annotazioni supportate da Microsoft Automazione interfaccia utente. Per altre informazioni, vedere Identificatori di tipo di annotazione.
  • Se si usa AnnotationType_Unknown, è necessario implementare la proprietà IAnnotationProvider::AnnotationTypeName per consentire ai client di individuare il nome del tipo di annotazione. Non è necessario implementare AnnotationTypeName per un tipo di annotazione standard perché Automazione interfaccia utente fornisce un nome predefinito, ma è possibile implementarlo se è necessario eseguire l'override del nome predefinito.
  • La proprietà IAnnotationProvider::Author è facoltativa.
  • La proprietà IAnnotationProvider::D ateTime è facoltativa.
  • La proprietà IAnnotationProvider::Target è necessaria perché collega un'annotazione a un elemento dell'interfaccia utente, consentendo a un client di passare dall'annotazione all'elemento dell'interfaccia utente a cui fa riferimento l'annotazione.
  • Poiché le annotazioni possono accettare molte forme diverse, l'interfaccia IAnnotationProvider non definisce una proprietà per archiviare il valore o il testo di un'annotazione. Una semplice annotazione deve esporre l'interfaccia IValueProvider e la proprietà IValueProvider::Value deve restituire un valore di sola lettura che specifica il testo dell'annotazione. Un'annotazione più ricca deve esporre l'interfaccia ITextProvider per fornire testo più avanzato ai client.
  • Lo spostamento da un elemento dell'interfaccia utente a un'annotazione sull'elemento dipende dal tipo di elemento annotato, come indicato di seguito:
  • Alcuni tipi di annotazioni non richiedono un'implementazione completa dell'interfaccia IAnnotationProvider . Ad esempio, un semplice indicatore di errore ortografico può essere rappresentato dalla presenza dell'interfaccia ITextRangeProvider di restituire un attributo di testo AnnotationTypes di AnnotationType_SpellingError e un valore Null per l'attributo di testo AnnotationObjects .
  • Può essere utile implementare l'interfaccia IAnnotationProvider in un elemento dell'interfaccia utente non visibile. Ad esempio, è possibile creare un elemento Automazione interfaccia utente non visibile che implementa IAnnotationProvider per fornire informazioni estese su un errore di grammatica.
  • Le annotazioni in un controllo basato su testo possono essere complesse se il controllo contiene commenti sovrapposti. Usare le linee guida seguenti per gestire annotazioni complesse:

Membri obbligatori per IAnnotationProvider

Per implementare l'interfaccia IAnnotationProvider sono necessarie le proprietà seguenti.

Membri obbligatori Tipo di membro Note
AnnotationTypeId Proprietà Nessuno.
AnnotationTypeName Proprietà Nessuno.
Autore Proprietà Nessuno.
Datetime Proprietà Nessuno.
Destinazione Proprietà Nessuno.

 

Questo pattern di controllo non è associato a eventi.

Tipi di controllo e modelli di controllo supportati

Cenni preliminari sui pattern di controllo per l'automazione interfaccia utente

Panoramica dell'albero di automazione dell'interfaccia utente