Anmerkungssteuerelementmuster
Beschreibt Richtlinien und Konventionen für die Implementierung von IAnnotationProvider,einschließlich Informationen zu Eigenschaften und Methoden. Das Annotation-Steuerelementmuster wird verwendet, um die Eigenschaften einer Anmerkung in einem Dokument verfügbar zu machen.
Ein Beispiel ist ein Kommentarsprechblasen, der sich am Rand eines Dokuments befindet und mit einem Dokumenttext oder einer Tabellenkalkulationszelle verbunden ist.
Die folgende Abbildung zeigt ein Beispiel für eine Anmerkung. Beispiele für Steuerelemente, die dieses Steuerelementmuster implementieren, finden Sie unter Steuerelementtypen und deren unterstützte Steuerelementmuster.

Dieses Thema enthält folgende Abschnitte:
- Implementierungsrichtlinien und -konventionen
- Erforderliche Member für IAnnotationProvider
- Zugehörige Themen
Implementierungsrichtlinien und -konventionen
Beachten Sie beim Implementieren des Annotation-Steuerelementmusters die folgenden Richtlinien und Konventionen:
- Es gibt viele verschiedene Arten von Anmerkungen. Die Headerdatei UIAutomationClient.h definiert einen Satz benannter konstanter Werte, die die Von Microsoft Benutzeroberflächenautomatisierung unterstützten Anmerkungstypen identifizieren. Weitere Informationen finden Sie unter Anmerkungstypbezeichner.
- Wenn Sie AnnotationType _ Unknownverwenden, müssen Sie die IAnnotationProvider::AnnotationTypeName-Eigenschaft implementieren, damit Clients den Namen des Anmerkungstyps ermitteln können. Sie müssen AnnotationTypeName nicht für einen Standardanmerkungstyp implementieren, da Benutzeroberflächenautomatisierung einen Standardnamen bereitstellt. Sie können ihn jedoch implementieren, wenn Sie den Standardnamen überschreiben müssen.
- Die IAnnotationProvider::Author-Eigenschaft ist optional.
- Die IAnnotationProvider::D ateTime-Eigenschaft ist optional.
- Die IAnnotationProvider::Target-Eigenschaft ist erforderlich, da sie eine Anmerkung mit einem Benutzeroberflächenelement verknüpft, sodass ein Client von der Anmerkung zurück zum Benutzeroberflächenelement navigiert, auf das die Anmerkung verweist.
- Da Anmerkungen viele verschiedene Formen annehmen können, definiert die IAnnotationProvider-Schnittstelle keine Eigenschaft zum Speichern des Werts oder Texts einer Anmerkung. Eine einfache Anmerkung sollte die IValueProvider-Schnittstelle verfügbar machen, und die IValueProvider::Value-Eigenschaft sollte einen schreibgeschützten Wert zurückgeben, der den Anmerkungstext angibt. Eine umfangreichere Anmerkung sollte die ITextProvider-Schnittstelle verfügbar machen, um Clients umfangreicheren Text bereitzustellen.
- Die Navigation von einem Benutzeroberflächenelement zu einer Anmerkung für das Element hängt wie folgt von der Art des Elements ab, das mit Anmerkungen versehen wird:
- Implementieren Sie für Tabellenzellen die ISpreadsheetItemProvider::GetAnnotationObjects-Methode, um auf die Anmerkung zu verweisen.
- Implementieren Sie für Textinhalt das Textattribut AnnotationObjects auf der ITextRangeProvider-Schnittstelle, um auf die Anmerkung zu verweisen.
- Einige Arten von Anmerkungen erfordern keine vollständige Implementierung der IAnnotationProvider-Schnittstelle. Beispielsweise kann ein einfacher Rechtschreibfehlerindikator dargestellt werden, indem die ITextRangeProvider-Schnittstelle ein AnnotationTypes-Textattribut von AnnotationType _ SpellingErrorund einen NULL-Wert für das Textattribut AnnotationObjects zurückgibt.
- Es kann hilfreich sein, die IAnnotationProvider-Schnittstelle für ein benutzeroberflächenelement zu implementieren, das nicht sichtbar ist. Beispielsweise können Sie ein nicht sichtbares Benutzeroberflächenautomatisierung Element erstellen, das IAnnotationProvider implementiert, um erweiterte Informationen zu einem Grammatikfehler bereitzustellen.
- Anmerkungen in einem textbasierten Steuerelement können komplex sein, wenn das Steuerelement überlappende Kommentare enthält. Verwenden Sie die folgenden Richtlinien, um komplexe Anmerkungen zu behandeln:
- Ein Textbereich ohne Anmerkungen sollte ein leeres Array für das Textattribut AnnotationTypes und ein leeres Array für das Textattribut AnnotationObjects zurückgeben.
- Ein Textbereich mit einer Anmerkung sollte ein Array mit einem ganzzahligen Wert für das Textattribut AnnotationTypes und ein Array einer IRawElementProviderSimple-Schnittstelle für das Textattribut AnnotationObjects zurückgeben.
- Ein Textbereich mit mehreren Anmerkungen sollte ein Array mit mehreren ganzzahligen Werten für das Textattribut AnnotationTypes und ein Array mit einer übereinstimmenden Anzahl von IRawElementProviderSimple-Schnittstellen für das Textattribut AnnotationObjects zurückgeben.
- Ein Textbereich mit unterschiedlichen Anmerkungen, z. B. ein Bereich mit textbeschriftetem und nicht kommentiertem Text, sollte die ReservedMixedAttributeValue-Eigenschaft sowohl für AnnotationTypes als auch für AnnotationObjectszurückgeben. Ein Client, der diese Antwort empfängt, kann den Textbereich unterteilen, um zu ermitteln, wo die Anmerkungen beginnen und enden.
Erforderliche Member für IAnnotationProvider
Die folgenden Eigenschaften sind für die Implementierung der IAnnotationProvider-Schnittstelle erforderlich.
| Erforderliche Member | Memberart | Hinweise |
|---|---|---|
| AnnotationTypeId | Eigenschaft | Keine. |
| AnnotationTypeName | Eigenschaft | Keine. |
| Autor | Eigenschaft | Keine. |
| Datetime | Eigenschaft | Keine. |
| Ziel | Eigenschaft | Keine. |
Diesem Steuerelementmuster sind keine Ereignisse zugeordnet.