Delen via


Ondersteuning voor UI Automation voor slepen en neerzetten

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:

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:

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.