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

Definición

Inicia una operación de arrastrar y colocar.Initiates a drag-and-drop operation.

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);
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.A reference to the dependency object that is the source of the data being dragged.

data
Object

Objeto de datos que contiene los datos que se arrastran.A data object that contains the data being dragged.

allowedEffects
DragDropEffects

Uno de los valores de DragDropEffects que especifica los efectos permitidos de la operación de arrastrar y colocar.One of the DragDropEffects values that specifies permitted effects of the drag-and-drop operation.

Devoluciones

Uno de los valores de DragDropEffects que especifica el efecto final obtenido durante la operación de arrastrar y colocar.One of the DragDropEffects values that specifies the final effect that was performed during the drag-and-drop operation.

Atributos

Excepciones

dragSource o data es null.dragSource or data is 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.The following example shows how to initiate a drag-and-drop operation from the MouseMove event handler of an Ellipse element to make it a drag source. Los datos transferidos son la representación de cadena de la propiedad Fill de la elipse.The transferred data is the string representation of the ellipse's Fill property. Los datos se pasan al método DoDragDrop como una cadena y se ajustan automáticamente en un DataObject.The data is passed to the DoDragDrop method as a string and is automatically wrapped in a 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 un arrastre y, a continuación, iniciar la operación de arrastrar y colocar.It is the responsibility of your application to determine when a drag occurs, and then initiate the drag-and-drop operation. Normalmente, es cuando se produce una secuencia de eventos MouseDown y @no__t 1 en el elemento que se va a arrastrar.Typically, this is when a MouseDown and MouseMove sequence of events occurs over the element to be dragged. Inicie la operación de arrastrar y colocar llamando al método estático DoDragDrop y pasando los datos transferidos a él.You initiate the drag-and-drop operation by calling the static DoDragDrop method and passing the transferred data to it. El método DoDragDrop ajustará automáticamente los datos en un DataObject, si es necesario.The DoDragDrop method will automatically wrap the data in a DataObject if necessary. Para un mayor control del formato de datos, puede ajustar los datos en un DataObject antes de pasarlos al método DoDragDrop.For greater control over the data format, you can wrap the data in a DataObject before passing it to the DoDragDrop method.

El valor devuelto desde el método DoDragDrop es el valor de la propiedad DragEventArgs.Effects establecida en el controlador de eventos Drop del destino de colocación.The value returned from the DoDragDrop method is the value of the DragEventArgs.Effects property set in the drop target's Drop event handler. 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.If the return value does not match one of the allowedEffects specified in the call to DoDragDrop, the drag-and-drop operation is not performed.

Se aplica a