Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft UI Automation definieert twee besturingspatronen voor ondersteunende scenario's voor slepen en neerzetten, het slepen-besturingspatroon en het DropTarget-besturingspatroon. U implementeert het patroon slepen van besturingselementen voor een element dat kan worden gesleept en het droptarget-besturingselementpatroon voor een element dat een gesleept element kan ontvangen; Dat wil gezegd, een valdoel. De twee besturingspatronen geven informatie weer die een ondersteunende technologie kan gebruiken om een toegankelijkheidsgebruiker te helpen bij het voltooien van een slepen-en-neerzetten-bewerking.
Stijlen slepen
Wanneer u het slepen besturingspatroon voor een sleepbaar element implementeert, moet u bepalen of u de bron-/doelstijl sleepstijl of de alleen- slepen-stijl wilt implementeren.
Bron-/doelstijl
In de bron-/doelstijl van slepen en neerzetten zijn het gesleepte element (de 'bron') en het drop-target-element (het 'doel') uniek en elk element genereert een afzonderlijke set gebeurtenissen. Dit is de levenscyclus voor een sleepbewerking die gebruikmaakt van de bron-/doelstijl:
- Wanneer de gebruiker een sleepbewerking start:
- De bron verheeft de gebeurtenis DragStart (UIA_Drag_DragStartEventId).
- De bron stelt de eigenschap IDragProvider::IsGrabbed in op TRUE-.
- Doelen werken hun DropTargetEffect eigenschappen bij.
- Het doel verhoogt de gebeurtenis DragEnter (UIA_DropTarget_DragEnterEventId).
- Het doel verhoogt de gebeurtenis DragLeave (UIA_DropTarget_DragLeaveEventId).
- De bron verhoogt de gebeurtenis DragCancel (UIA_Drag_DragCancelEventId).
- De bron stelt de eigenschap IDragProvider::IsGrabbed in op FALSE.
- De bron verhoogt de gebeurtenis DragComplete (UIA_Drag_DragCompleteEventId).
- De bron stelt de eigenschap IDragProvider::IsGrabbed in op FALSE.
- Het doel stelt de eigenschap IDropTargetProvider::D ropTargetEffect in om het effect aan te geven dat is opgetreden.
- Het doel verhoogt de gebeurtenis Verwijderd (UIA_DropTarget_DroppedEventId).
Wanneer de sleepbewerking een doelregio binnenkomt:
Wanneer de sleepbewerking een doelregio verlaat:
Wanneer de gebruiker het gesleepte item over een niet-doel publiceert:
Wanneer de gebruiker het gesleepte item over een doel publiceert:
De gebeurtenissen van de bron- en doelobjecten zijn nauw verwant, maar uniek. De gegevens over wat er wordt gesleept, zijn afkomstig uit de bron, terwijl de gegevens over 'wat er kan gebeuren' en 'wat er is gebeurd', afkomstig zijn van het doel.
Wanneer een sleepbewerking wordt uitgevoerd, kan het gesleepte item een aantal keren worden gesleept naar en uit de doelregio's voordat de bewerking is voltooid.
Elk drop-doel dat de IDropTargetProvider::D ropTargetEffect eigenschap moet bijwerken, moet onmiddellijk een extra gewijzigde eigenschap voor die eigenschap genereren.
Stijl voor alleen bron
Met de stijl alleen slepen van bron kan een provider voorkomen dat er drop-doelen worden geïmplementeerd. Het niet implementeren van dalingsdoelen helpt de implementatiekosten te verlagen, maar geeft geen toegankelijkheidsclienttoepassingen informatie over het object dat de daling heeft ontvangen. Dit is de levenscyclus voor een sleepbewerking die gebruikmaakt van de stijl alleen bron:
- Wanneer de gebruiker een sleepbewerking start:
- De bron verheeft de gebeurtenis DragStart (UIA_Drag_DragStartEventId).
- De bron stelt de eigenschap IDragProvider::IsGrabbed in op TRUE-.
- De bron stelt de eigenschap IDragProvider::D ropEffect in op de juiste waarde.
- De bron stelt de eigenschap IDragProvider::D ropEffect in op de juiste waarde.
- De bron verhoogt de gebeurtenis DragCancel (UIA_Drag_DragCancelEventId).
- De bron stelt de eigenschap IDragProvider::IsGrabbed in op FALSE.
- De bron verhoogt de gebeurtenis DragComplete (UIA_Drag_DragCompleteEventId).
- De bron stelt de eigenschap IDragProvider::D ropEffect in om aan te geven welk effect heeft plaatsgevonden toen het item werd verwijderd.
Wanneer de sleepbewerking een doelregio binnenkomt:
Wanneer de sleepbewerking een doelregio verlaat:
Wanneer de gebruiker het gesleepte item over een niet-doel publiceert:
Wanneer de gebruiker het gesleepte item over een doel publiceert:
Meerdere items slepen
Als een provider slepen-en-neerzetten implementeert waarbij de gebruiker meerdere objecten tegelijk kan slepen, gebruikt de provider de stijlen bron/doel of alleen bron, zoals beschreven in de vorige sectie, maar met een klein verschil. Wanneer de gebruiker de sleepbewerking start, maakt de provider een hoofdbronelement dat de volledige set items vertegenwoordigt die worden gesleept. Het hoofdbronelement genereert alle gebeurtenissen namens de set met gesleepte items; de items veroorzaken geen gebeurtenissen van hun eigen.
- Wanneer de gebruiker een sleepbewerking start:
- De provider maakt het hoofdbronelement.
- Het hoofdbronelement verhoogt de gebeurtenis DragStart (UIA_Drag_DragStartEventId).
- Het hoofdbronelement stelt de eigenschap IDragProvider::IsGrabbed in op TRUE-.
- Het hoofdbronelement werkt de lijst met opgehaalde items bij zodat alle items die worden gesleept, worden opgenomen, zodat de GetGrabbedItems methode de lijst kan ophalen.
Voor dat punt voert het hoofdbronelement dezelfde rol uit als dat van het bronelement, zoals beschreven in de vorige sectie.
Clientinterfaces voor slepen en neerzetten
UI Automation-clienttoepassingen gebruiken de IUIAutomationDragPattern- en IUIAutomationDropTargetPattern interfaces voor toegang tot informatie over slepen en neerzetten van UI-elementen.