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čují povolené efekty operace přetažení myší.

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 Ellipse události elementu, aby byl zdrojem přetažení. Přenášená data jsou řetězcová reprezentace vlastnosti tří teček 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 dojde k přetažení, a pak zahájit operaci přetažení. Obvykle se jedná o situace, kdy se MouseDown přes prvek, který se má přetáhnout, a MouseMove posloupnost událostí. Operaci přetažení zahájíte voláním statické DoDragDrop metody a předáním přenesených dat do ní. Metoda DoDragDrop v případě potřeby automaticky zabalí data.DataObject Pro větší kontrolu nad formátem dat můžete data DataObject před předáním DoDragDrop metodě zabalit.

Hodnota vrácená z DoDragDrop metody je hodnota DragEventArgs.Effects vlastnosti nastavená v obslužné rutině Drop události cíle drop. Pokud návratová hodnota neodpovídá jedné ze zadaných allowedEffects hodnot volání DoDragDrop, operace přetažení se neprovede.

Platí pro