DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Metoda

Definicja

Inicjuje operację przeciągania i upuszczania.

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

Parametry

dragSource
DependencyObject

Odwołanie do obiektu zależności, który jest źródłem przeciąganych danych.

data
Object

Obiekt danych zawierający przeciągane dane.

allowedEffects
DragDropEffects

DragDropEffects Jedna z wartości określających dozwolone skutki operacji przeciągania i upuszczania.

Zwraca

DragDropEffects Jedna z wartości określających ostateczny efekt, który został wykonany podczas operacji przeciągania i upuszczania.

Atrybuty

Wyjątki

dragSource lub data ma wartość null.

Przykłady

W poniższym przykładzie pokazano, jak zainicjować operację przeciągania i upuszczania z MouseMove procedury obsługi Ellipse zdarzeń elementu, aby uczynić ją źródłem przeciągania. Przesłane dane są reprezentacją ciągu właściwości wielokropka Fill . Dane są przekazywane do DoDragDrop metody jako ciąg i są automatycznie opakowane w obiekcie DataObject.

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

Uwagi

Aplikacja odpowiada za określenie, kiedy występuje przeciąganie, a następnie zainicjowanie operacji przeciągania i upuszczania. Zazwyczaj jest to sytuacja, gdy element , MouseMove który ma być przeciągany, następuje MouseDown sekwencja zdarzeń i. Operację przeciągania i upuszczania należy zainicjować, wywołując metodę statyczną DoDragDrop i przekazując do niej przesłane dane. Metoda DoDragDrop automatycznie opakowuje dane w DataObject razie potrzeby. Aby uzyskać większą kontrolę nad formatem danych, możesz opakować dane w obiekcie DataObject przed przekazaniem ich do DoDragDrop metody .

Wartość zwrócona z DoDragDrop metody jest wartością DragEventArgs.Effects właściwości ustawionej w procedurze obsługi zdarzeń obiektu docelowego Drop drop. Jeśli wartość zwracana nie jest zgodna z jedną z allowedEffects wartości określonych w wywołaniu metody , DoDragDropoperacja przeciągania i upuszczania nie jest wykonywana.

Dotyczy