Condividi tramite


Pattern di controllo annotazione

Vengono descritte le linee guida e le convenzioni per l'implementazione di IAnnotationProvider, incluse informazioni sulle proprietà e sui metodi. L'annotazione pattern di controllo viene utilizzato per esporre le proprietà di un'annotazione in un documento.

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

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

screenshot che mostra un commento baloon in un documento

Questo argomento contiene le sezioni seguenti.

Linee guida e convenzioni di implementazione

Quando si implementa il pattern di controllo annotazione, tenere presenti le linee guida e le 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 Automazione interfaccia utente microsoft. Per altre informazioni, vedere identificatori del 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 assumere molte forme diverse, l'interfacciaIAnnotationProvidernon definisce una proprietà per l'archiviazione del valore o del testo di un'annotazione. Una semplice annotazione deve esporre l'interfacciaIValueProvidere la proprietà IValueProvider::Value deve restituire un valore di sola lettura che specifica il testo dell'annotazione. Un'annotazione più completa deve esporre l'interfaccia ITextProvider per fornire testo più rtf ai client.
  • Lo spostamento da un elemento dell'interfaccia utente a un'annotazione sull'elemento dipende dal tipo di elemento da annotare, 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 con l'interfaccia ITextRangeProvider restituire un attributo di testo AnnotationTypes attributo text di AnnotationType_SpellingErrore un valore Null per l'attributo di testo AnnotationObjects.
  • Può essere utile implementare l'interfacciaIAnnotationProvider in un elemento dell'interfaccia utente non visibile. Ad esempio, è possibile creare un elemento di automazione interfaccia utente non visibile che implementa IAnnotationProvider per fornire informazioni estese su un errore grammaticale.
  • 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'interfacciaIAnnotationProvidersono necessarie le proprietà seguenti.

Membri obbligatori Tipo di membro Note
AnnotationTypeId Proprietà Nessuno.
AnnotationTypeName Proprietà Nessuno.
Author Proprietà Nessuno.
DateTime Proprietà Nessuno.
destinazione Proprietà Nessuno.

 

Questo pattern di controllo non ha eventi associati.

tipi di controllo e i relativi modelli di controllo supportati

Panoramica modelli di controllo di automazione interfaccia utente

panoramica dell'albero di automazione interfaccia utente