Sdílet prostřednictvím


DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Metoda

Definice

Inicializuje operaci přetažení.

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

Odkaz na objekt závislosti, který je zdrojem přetahovaných dat.

data
Object

Datový objekt, který obsahuje přetahovaná data.

allowedEffects
DragDropEffects

Jedna z DragDropEffects hodnot, která určuje povolené účinky operace přetažení.

Návraty

Jedna z DragDropEffects hodnot, která určuje konečný efekt, který byl proveden během operace přetažení.

Atributy

Výjimky

dragSource nebo data je null.

Příklady

Následující příklad ukazuje, jak zahájit operaci přetažení z MouseMove obslužné rutiny události elementu Ellipse , aby se z ní přetáhl zdroj. Přenášená data jsou řetězcovou reprezentací vlastnosti elipsy Fill . Data se předají DoDragDrop metodě jako řetězec a automaticky se zabalí do 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

Poznámky

Je zodpovědností vaší aplikace určit, kdy k přetažení dojde, a pak zahájit operaci přetažení. Obvykle se jedná o MouseDown situaci, kdy dojde k posloupnosti událostí a MouseMove nad elementem, který se má přetáhnout. Operaci přetažení zahájíte voláním statické DoDragDrop metody a předáním přenesených dat do ní. V DoDragDrop případě potřeby metoda automaticky zabalí data do objektu DataObject . Pro větší kontrolu nad formátem dat můžete data DataObject před předáním metodě zabalit do objektu DoDragDrop .

Hodnota vrácená metodou DoDragDrop je hodnota DragEventArgs.Effects vlastnosti nastavené v obslužné rutině Drop události drop target. Pokud návratová hodnota neodpovídá jedné ze zadaných allowedEffects ve volání , DoDragDropoperace přetažení se neprovádí.

Platí pro