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

Microsoft Benutzeroberflächenautomatisierung definiert zwei Steuerelementmuster zur Unterstützung von Drag-and-Drop-Szenarien: das Steuerelementmuster drag und das DropTarget-Steuerelementmuster. 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 Ablageziel. Die beiden Steuerelementmuster machen Informationen verfügbar, die eine Hilfstechnologie verwenden kann, um einem Benutzer mit Barrierefreiheit beim Ausführen eines Drag-and-Drop-Vorgangs zu helfen.

Formatvorlagen ziehen

Wenn Sie das Drag-Steuerelementmuster für ein ziehbares Element implementieren, müssen Sie entscheiden, ob sie den Quell-/Ziel-Ziehstil oder den Nur-Quell-Ziehstil implementieren möchten.

Quell-/Zielformat

Im Quell-/Zielstil von Drag-and-Drop sind das gezogene Element (die "Quelle") und das Drop-Target-Element (das "Ziel") unterschiedlich und löst jeweils einen eindeutigen Satz von Ereignissen aus. Hier sehen Sie den Lebenszyklus eines Ziehvorgangs, der das Quell-/Zielformat verwendet:

Wenn der Benutzer einen Ziehvorgang startet:

Wenn der Ziehvorgang in einen Zielbereich eintritt:

Wenn der Ziehvorgang einen Zielbereich verlässt:

Wenn der Benutzer das gezogene Element über ein Nichtziel freigibt:

Wenn der Benutzer das gezogene Element über ein Ziel freigibt:

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

Wenn ein Ziehvorgang ausgeführt wird, kann das gezogene Element beliebig oft in Zielregionen gezogen werden, bevor der Vorgang abgeschlossen wird.

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

Formatvorlage "Nur Quelle"

Mit dem Format "Nur-Source-Ziehen" kann ein Anbieter die Implementierung von Ablagezielen vermeiden. Die Nichtimplementierung von Dropzielen trägt dazu bei, die Implementierungskosten zu senken, bietet jedoch keine Informationen zu dem Objekt, das den Drop empfangen hat. Im Folgenden sehen Sie den Lebenszyklus eines Ziehvorgangs, der die schreibgeschützte Formatvorlage "Source" verwendet:

Wenn der Benutzer einen Ziehvorgang startet:

Wenn der Ziehvorgang in einen Zielbereich eintritt:

Wenn der Ziehvorgang einen Zielbereich verlässt:

Wenn der Benutzer das gezogene Element über ein Nichtziel freigibt:

Wenn der Benutzer das gezogene Element über ein Ziel freigibt:

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 mit dem Ziehvorgang beginnt, erstellt der Anbieter ein master Quellelement, das den vollständigen Satz von Elementen darstellt, die gezogen werden. Das master Quellelement löst alle Ereignisse im Namen der Gruppe der gezogenen Elemente aus. Die Elemente lösen keine eigenen Ereignisse aus.

Wenn der Benutzer einen Ziehvorgang startet:

In diesem Punkt übernimmt das master Quellelement dieselbe Rolle wie das Quellelement, wie im vorherigen Abschnitt beschrieben.

Clientschnittstellen für Drag-and-Drop

Benutzeroberflächenautomatisierung Clientanwendungen verwenden die Schnittstellen IUIAutomationDragPattern und IUIAutomationDropTargetPattern, um auf Drag-and-Drop-Informationen aus UI-Elementen zuzugreifen.