DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Metod

Definition

Initierar en dra och släpp-åtgärd.

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

Parametrar

dragSource
DependencyObject

En referens till beroendeobjektet som är källan till de data som dras.

data
Object

Ett dataobjekt som innehåller de data som dras.

allowedEffects
DragDropEffects

Ett av de DragDropEffects värden som anger tillåtna effekter av dra och släpp-åtgärden.

Returer

Ett av de DragDropEffects värden som anger den slutliga effekten som utfördes under dra och släpp-åtgärden.

Attribut

Undantag

dragSource eller data är null.

Exempel

I följande exempel visas hur du initierar en dra och släpp-åtgärd från MouseMove händelsehanteraren för ett Ellipse element för att göra det till en dragkälla. De överförda data är strängrepresentationen av ellipsens Fill egenskap. Data skickas till DoDragDrop metoden som en sträng och omsluts automatiskt i en 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

Kommentarer

Det är ditt programs ansvar att avgöra när en dra inträffar och sedan initiera dra och släpp-åtgärden. Det här är vanligtvis när en MouseDown sekvens med MouseMove händelser inträffar över elementet som ska dras. Du initierar dra och släpp-åtgärden genom att anropa den statiska DoDragDrop metoden och skicka de överförda data till den. Metoden DoDragDrop omsluter automatiskt data i en DataObject om det behövs. Om du vill ha större kontroll över dataformatet kan du omsluta data i en DataObject innan du DoDragDrop skickar dem till metoden.

Värdet som returneras från DoDragDrop metoden är värdet för egenskapen DragEventArgs.Effects som anges i släppmålets Drop händelsehanterare. Om returvärdet inte matchar något av de allowedEffects angivna i anropet till DoDragDroputförs inte dra och släpp-åtgärden.

Gäller för