Freigeben über


Unterstützung der Benutzeroberflächenautomatisierung für Drag-and-Drop

Die Microsoft-Benutzeroberflächenautomatisierung definiert zwei Steuerelementmuster für die Unterstützung von Drag-and-Drop-Szenarien, das Ziehen Steuerelementmusters und das DropTarget- Steuerelementmusters. Sie implementieren das Drag-Steuerelementmuster für ein Element, das gezogen werden kann, und das DropTarget-Steuerelementmuster für ein Element, das ein gezogenes Element empfangen kann; d. h. ein Drop-Ziel. Die beiden Steuerelementmuster machen Informationen verfügbar, die eine Hilfstechnologie verwenden kann, um einem Benutzer bei der Barrierefreiheit zu helfen, einen Drag-and-Drop-Vorgang abzuschließen.

Formatvorlagen ziehen

Wenn Sie das Ziehen Steuerelementmusters für ein ziehbares Element implementieren, müssen Sie entscheiden, ob das Quell-/Zielformat Ziehformat oder das schreibgeschützte Ziehformat implementiert werden soll.

Quell-/Zielformatvorlage

Im Quell-/Zielstil des Ziehens und Ablegens sind das gezogene Element (die "Quelle") und das Drop-Target-Element (das "Ziel") unterschiedlich, und jeder löst einen unterschiedlichen Satz von Ereignissen aus. Hier sehen Sie den Lebenszyklus für einen Ziehvorgang, der den Quell-/Zielstil verwendet:

Wenn der Benutzer einen Ziehvorgang startet:

Wenn der Ziehvorgang einen Zielbereich eingibt:

Wenn der Ziehvorgang einen Zielbereich verlässt:

Wenn der Benutzer das gezogene Element über ein Nichtziel loslässt:

Wenn der Benutzer das gezogene Element über ein Ziel loslässt:

Die Ereignisse aus den Quell- und Zielobjekten sind eng miteinander verknüpft, unterscheiden sich jedoch. Die Daten darüber, was gezogen wird, stammen aus der Quelle, während die Daten über "Was könnte passieren" und "Was passiert" aus dem Ziel stammt.

Wenn ein Ziehvorgang ausgeführt wird, kann das gezogene Element beliebig oft in zielbereiche gezogen und aus den Zielbereichen gezogen werden, bevor der Vorgang abgeschlossen ist.

Jedes Dropziel, das seine IDropTargetProvider::D ropTargetEffect Eigenschaft automatisch aktualisieren muss, sollte ein zusätzliches Eigenschaftsänderungsereignis für diese Eigenschaft auslösen.

Schreibgeschützter Quellstil

Mit dem schreibgeschützten Quellziehstil kann ein Anbieter die Implementierung von Dropzielen vermeiden. Die Implementierung von Drop-Zielen trägt dazu bei, die Implementierungskosten zu senken, bietet jedoch keine Informationen zu dem Objekt, das den Drop erhalten hat. Hier sehen Sie den Lebenszyklus für einen Ziehvorgang, der die schreibgeschützte Formatvorlage verwendet:

Wenn der Benutzer einen Ziehvorgang startet:

Wenn der Ziehvorgang einen Zielbereich eingibt:

Wenn der Ziehvorgang einen Zielbereich verlässt:

Wenn der Benutzer das gezogene Element über ein Nichtziel loslässt:

Wenn der Benutzer das gezogene Element über ein Ziel loslässt:

Ziehen mehrerer Elemente

Wenn ein Anbieter Drag-and-Drop-Vorgänge implementiert, bei denen der Benutzer mehrere Objekte gleichzeitig ziehen kann, verwendet der Anbieter die Formatvorlagen "Source/Target" oder "Source-only", wie im vorherigen Abschnitt beschrieben, aber mit einem kleinen Unterschied. Wenn der Benutzer den Ziehvorgang beginnt, erstellt der Anbieter ein Masterquellelement, das den vollständigen Satz von Elementen darstellt, die gezogen werden. Das Masterquellelement löst alle Ereignisse im Namen der Gruppe gezogener Elemente aus; die Elemente lösen keine eigenen Ereignisse aus.

Wenn der Benutzer einen Ziehvorgang startet:

  • Der Anbieter erstellt das Masterquellelement.
  • Das Masterquellelement löst das DragStart (UIA_Drag_DragStartEventId)-Ereignis aus.
  • Das Masterquellelement legt die eigenschaft IDragProvider::IsGrabbed auf TRUEfest.
  • Das Masterquellelement aktualisiert die Liste der abgerufenen Elemente, um alle Elemente einzuschließen, die gezogen werden, sodass die GetGrabbedItems Methode die Liste abrufen kann.

Zu diesem Zeitpunkt führt das Masterquellelement dieselbe Rolle wie das des Quellelements aus, wie im vorherigen Abschnitt beschrieben.

Clientschnittstellen für Drag-and-Drop

Benutzeroberflächenautomatisierungs-Clientanwendungen verwenden die IUIAutomationDragPattern und IUIAutomationDropTargetPattern Schnittstellen für den Zugriff auf Drag-and-Drop-Informationen aus UI-Elementen.