Aantekeningsbeheerpatroon
Beschrijft richtlijnen en conventies voor het implementeren van IAnnotationProvider, inclusief informatie over eigenschappen en methoden. Het aantekeningspatroon wordt gebruikt om de eigenschappen van een aantekening in een document beschikbaar te maken.
Een voorbeeld is een opmerkingballon die zich in de marge van een document bevindt en is verbonden met een documenttekst of een spreadsheetcel.
In de volgende afbeelding ziet u een voorbeeld van een aantekening. Zie Besturingstypen en de ondersteunde besturingspatronenvoor voorbeelden van besturingselementen die dit besturingspatroon implementeren.
Dit onderwerp bevat de volgende secties.
- richtlijnen en conventies voor de tenuitvoerlegging
- Vereiste leden voor IAnnotationProvider
- Verwante onderwerpen
Implementatierichtlijnen en conventies
Let bij het implementeren van het aantekening controlepatroon op de volgende richtlijnen en conventies:
- Er zijn veel verschillende soorten aantekeningen. Het headerbestand UIAutomationClient.h definieert een set benoemde constante waarden waarmee de typen aantekeningen worden geïdentificeerd die door Microsoft UI Automation worden ondersteund. Zie Type-id's van aantekeningenvoor meer informatie.
- Als u AnnotationType_Unknowngebruikt, moet u de eigenschap IAnnotationProvider::AnnotationTypeName implementeren om clients in staat te stellen de naam van het aantekeningstype te detecteren. U hoeft geen AnnotationTypeName- te implementeren voor een standaardaantekeningstype omdat UI Automation een standaardnaam biedt, maar u kunt deze implementeren als u de standaardnaam wilt overschrijven.
- De eigenschap IAnnotationProvider::Author is optioneel.
- De eigenschap IAnnotationProvider::D ateTime is optioneel.
- De eigenschap IAnnotationProvider::Target is vereist omdat deze een aantekening koppelt aan een UI-element, zodat een client vanuit de aantekening terug kan navigeren naar het ui-element waarnaar de aantekening verwijst.
- Omdat aantekeningen veel verschillende vormen kunnen aannemen, definieert de IAnnotationProvider interface geen eigenschap voor het opslaan van de waarde of tekst van een aantekening. Een eenvoudige aantekening moet de IValueProvider interface beschikbaar maken en de eigenschap IValueProvider::Value moet een alleen-lezenwaarde retourneren die de aantekeningstekst aangeeft. Een uitgebreidere aantekening moet de ITextProvider-interface beschikbaar maken om uitgebreidere tekst aan clients te bieden.
- Navigeren van een UI-element naar een aantekening op het element hangt als volgt af van het type element dat wordt geannoteerd:
- Implementeer voor spreadsheetcellen de methode ISpreadsheetItemProvider::GetAnnotationObjects om te verwijzen naar de aantekening.
- Implementeer voor tekstuele inhoud het kenmerk AnnotationObjects tekst op de interface van ITextRangeProvider om naar de aantekening te verwijzen.
- Voor sommige soorten aantekeningen is geen volledige implementatie van de IAnnotationProvider interface vereist. Een eenvoudige indicator voor spelfouten kan bijvoorbeeld worden vertegenwoordigd door de interface ITextRangeProvider een AnnotationTypes tekstkenmerk van AnnotationType_SpellingErrorte laten retourneren en een null-waarde voor het AnnotationObjects tekstkenmerk.
- Het kan handig zijn om de IAnnotationProvider interface te implementeren op een UI-element dat niet zichtbaar is. U kunt bijvoorbeeld een niet-zichtbaar UI Automation-element maken dat IAnnotationProvider implementeert om uitgebreide informatie over een grammaticafout op te geven.
- Aantekeningen in een besturingselement op basis van tekst kunnen complex zijn als het besturingselement overlappende opmerkingen bevat. Gebruik de volgende richtlijnen om complexe aantekeningen af te handelen:
- Een tekstbereik zonder aantekeningen moet een lege matrix retourneren voor het AnnotationTypes tekstkenmerk en een lege matrix voor het AnnotationObjects tekstkenmerk.
- Een tekstbereik met één aantekening moet een matrix van één geheel getal retourneren voor het AnnotationTypes tekstkenmerk en een matrix van één IRawElementProviderSimple interface voor de AnnotationObjects tekstkenmerk.
- Een tekstbereik met meerdere aantekeningen moet een matrix met meerdere gehele getallen retourneren voor de AnnotationTypes tekstkenmerk en een matrix van een overeenkomend aantal IRawElementProviderSimple-interfaces voor de AnnotationObjects tekstkenmerk.
- Een tekstbereik met verschillende aantekeningen, zoals een bereik met zowel geannoteerde als niet-geannoteerde tekst, moet de eigenschap ReservedMixedAttributeValue retourneren voor zowel AnnotationTypes als AnnotationObjects. Een client die dit antwoord ontvangt, kan het tekstbereik onderverdelen om te bepalen waar de aantekeningen beginnen en eindigen.
Vereiste leden voor IAnnotationProvider
De volgende eigenschappen zijn vereist voor het implementeren van de IAnnotationProvider interface.
Vereiste leden | Type lid | Notities |
---|---|---|
AnnotationTypeId | Eigenschap | Geen. |
AnnotationTypeName- | Eigenschap | Geen. |
maken | Eigenschap | Geen. |
DateTime- | Eigenschap | Geen. |
doel | Eigenschap | Geen. |
Dit besturingspatroon heeft geen gekoppelde gebeurtenissen.
Verwante onderwerpen
-
Overzicht van UI Automation-besturingspatronen
-
Overzicht van UI Automation Tree