DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Método

Definición

Inicia una operación de arrastrar y colocar.

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

Parámetros

dragSource
DependencyObject

Referencia al objeto de dependencia que es el origen de los datos que se arrastran.

data
Object

Objeto de datos que contiene los datos que se arrastran.

allowedEffects
DragDropEffects

Uno de los valores de DragDropEffects que especifica los efectos permitidos de la operación de arrastrar y colocar.

Devoluciones

Uno de los valores de DragDropEffects que especifica el efecto final obtenido durante la operación de arrastrar y colocar.

Atributos

Excepciones

dragSource o data es null.

Ejemplos

En el ejemplo siguiente se muestra cómo iniciar una operación de arrastrar y colocar desde el controlador de eventos MouseMove de un elemento Ellipse para convertirlo en un origen de arrastre. Los datos transferidos son la representación de cadena de la propiedad de Fill la elipse. Los datos se pasan al DoDragDrop método como una cadena y se encapsulan automáticamente 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

Comentarios

Es responsabilidad de la aplicación determinar cuándo se produce una arrastre y, a continuación, iniciar la operación de arrastrar y colocar. Normalmente, esto es cuando se produce una MouseDown secuencia de eventos y MouseMove sobre el elemento que se va a arrastrar. Inicie la operación de arrastrar y colocar llamando al método estático DoDragDrop y pasando los datos transferidos a él. El método DoDragDrop ajustará automáticamente los datos en un DataObject, si es necesario. Para un mayor control del formato de datos, puede ajustar los datos en un DataObject antes de pasarlos al método DoDragDrop.

El valor devuelto por el DoDragDrop método es el valor de la DragEventArgs.Effects propiedad establecida en el controlador de eventos del destino de Drop colocación. Si el valor devuelto no coincide con uno de los allowedEffects especificados en la llamada a DoDragDrop, no se realiza la operación de arrastrar y colocar.

Se aplica a