Freigeben über


DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Methode

Definition

Leitet einen Drag & Drop-Vorgang ein.

public:
 static System::Windows::DragDropEffects DoDragDrop(System::Windows::DependencyObject ^ dragSource, System::Object ^ data, System::Windows::DragDropEffects allowedEffects);
[System.Security.SecurityCritical]
public static System.Windows.DragDropEffects DoDragDrop (System.Windows.DependencyObject dragSource, object data, System.Windows.DragDropEffects allowedEffects);
public static System.Windows.DragDropEffects DoDragDrop (System.Windows.DependencyObject dragSource, object data, System.Windows.DragDropEffects allowedEffects);
[<System.Security.SecurityCritical>]
static member DoDragDrop : System.Windows.DependencyObject * obj * System.Windows.DragDropEffects -> System.Windows.DragDropEffects
static member DoDragDrop : System.Windows.DependencyObject * obj * System.Windows.DragDropEffects -> System.Windows.DragDropEffects
Public Shared Function DoDragDrop (dragSource As DependencyObject, data As Object, allowedEffects As DragDropEffects) As DragDropEffects

Parameter

dragSource
DependencyObject

Ein Verweis auf das Abhängigkeitsobjekt, das die Quelle der gezogenen Daten darstellt.

data
Object

Ein Datenobjekt, das die gezogenen Daten enthält.

allowedEffects
DragDropEffects

Einer der DragDropEffects-Enumerationswerte, der die zulässigen Auswirkungen des Drag & Drop-Vorgangs angibt.

Gibt zurück

Einer der DragDropEffects-Werte, der das spezifische Ergebnis des Drag & Drop-Vorgangs darstellt.

Attribute

Ausnahmen

dragSource oder data ist null.

Beispiele

Im folgenden Beispiel ist zu sehen, wie ein Drag & Drop-Vorgang vom MouseMove-Ereignishandler eines Ellipse-Elements eingeleitet wird, um es zu einer Ziehquelle zu machen. Die übertragenen Daten sind die Zeichenfolgendarstellung der Eigenschaft der Ellipse Fill . Die Daten werden als Zeichenfolge an die DoDragDrop -Methode übergeben und automatisch in einen DataObjectumschlossen.

private void ellipse_MouseMove(object sender, MouseEventArgs e)
{
    Ellipse ellipse = sender as Ellipse;
    if (ellipse != null && e.LeftButton == MouseButtonState.Pressed)
    {
        DragDrop.DoDragDrop( ellipse,
                             ellipse.Fill.ToString(),
                             DragDropEffects.Copy);
    }
}
Private Sub Ellipse_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseEventArgs)
    Dim ellipse = TryCast(sender, Ellipse)
    If ellipse IsNot Nothing AndAlso e.LeftButton = MouseButtonState.Pressed Then
        DragDrop.DoDragDrop(ellipse, ellipse.Fill.ToString(), DragDropEffects.Copy)
    End If
End Sub

Hinweise

Es liegt in der Verantwortung Ihrer Anwendung, zu bestimmen, wann ein Ziehen auftritt, und dann den Drag-and-Drop-Vorgang zu initiieren. Dies ist in der Regel der Fall, wenn eine MouseDown Und-Abfolge MouseMove von Ereignissen über dem zu ziehenden Element auftritt. Sie initiieren den Drag-and-Drop-Vorgang, indem Sie die statische DoDragDrop Methode aufrufen und die übertragenen Daten an sie übergeben. Die DoDragDrop-Methode umschließt die Daten ggf. automatisch in einem DataObject. Um mehr Kontrolle über das Datenformat zu erhalten, können Sie die Daten vor der Übergabe an die DataObject-Methode mit einem DoDragDrop umschließen.

Der von der DoDragDrop -Methode zurückgegebene Wert ist der Wert der Eigenschaft, die DragEventArgs.Effects im Ereignishandler des Ablageziels Drop festgelegt ist. Wenn der Rückgabewert nicht mit einem der im Aufruf DoDragDropvon allowedEffects angegebenen übereinstimmt, wird der Drag-and-Drop-Vorgang nicht ausgeführt.

Gilt für: