Compartilhar via


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

Definição

Inicia uma operação de arrastar e soltar.

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

Uma referência ao objeto de dependência que é a fonte dos dados que estão sendo arrastados.

data
Object

Um objeto de dados que contém os dados que estão sendo arrastados.

allowedEffects
DragDropEffects

Um dos valores que especifica os DragDropEffects efeitos permitidos da operação de arrastar e soltar.

Retornos

Um dos DragDropEffects valores que especifica o efeito final que foi executado durante a operação de arrastar e soltar.

Atributos

Exceções

dragSource ou data é null.

Exemplos

O exemplo a seguir mostra como iniciar uma operação de arrastar e soltar do MouseMove manipulador de eventos de um Ellipse elemento para torná-la uma fonte de arrastar. Os dados transferidos são a representação de cadeia de caracteres da propriedade da reticências Fill . Os dados são passados para o DoDragDrop método como uma cadeia de caracteres e são automaticamente encapsulados em um 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

Comentários

É responsabilidade do seu aplicativo determinar quando ocorre um arrastar e, em seguida, iniciar a operação de arrastar e soltar. Normalmente, é quando ocorre um e MouseMove uma MouseDown sequência de eventos sobre o elemento a ser arrastado. Você inicia a operação de arrastar e soltar chamando o método estático DoDragDrop e passando os dados transferidos para ele. O DoDragDrop método encapsulará automaticamente os dados em um, DataObject se necessário. Para obter maior controle sobre o formato de dados, você pode encapsular os dados em um DataObject antes de passá-los para o DoDragDrop método.

O valor retornado do DoDragDrop método é o valor da DragEventArgs.Effects propriedade definida no manipulador de eventos do destino de Drop descarte. Se o valor retornado não corresponder a allowedEffects um dos especificados na chamada, DoDragDropa operação de arrastar e soltar não será executada.

Aplica-se a