Compartilhar via


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

Definição

Inicia uma operação do tipo "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 para o objeto de dependência que é a origem dos dados sendo arrastados.

data
Object

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

allowedEffects
DragDropEffects

Um dos valores DragDropEffects que especificam os efeitos permitidos da operação do tipo "arrastar e soltar".

Retornos

Um dos valores DragDropEffects que especificam o efeito final que foi executado durante a operação do tipo "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á-lo uma fonte de arrastar. Os dados transferidos são a representação de cadeia de caracteres da propriedade da Fill elipse. Os dados são passados para o DoDragDrop método como uma cadeia de caracteres e são encapsulados automaticamente 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 uma MouseDown sequência e MouseMove 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 soltar. Se o valor retornado não corresponder a um dos allowedEffects especificados na chamada para DoDragDrop, a operação de arrastar e soltar não será executada.

Aplica-se a