DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Inicia uma operação de arrastar e largar.
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 a ser arrastados.
- data
- Object
Um objeto de dados que contém os dados que estão a ser arrastados.
- allowedEffects
- DragDropEffects
Um dos DragDropEffects valores que especifica os efeitos permitidos da operação de arrastar e largar.
Devoluções
Um dos DragDropEffects valores que especifica o efeito final realizado durante a operação de arrastar e largar.
- Atributos
Exceções
dragSource ou data é null.
Exemplos
O exemplo seguinte mostra como iniciar uma operação de arrastar e largar a partir do MouseMove gestor de eventos de um Ellipse elemento para o tornar uma fonte de arrasto. Os dados transferidos são a representação da cadeia da propriedade da Fill elipse. Os dados são passados para o DoDragDrop método como uma cadeia e são automaticamente encapsulados num 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
Observações
É responsabilidade da sua aplicação determinar quando ocorre um arrasto e depois iniciar a operação de arrastar e largar. Normalmente, isto ocorre quando ocorre uma MouseDown sequência de eventos e MouseMove sobre o elemento a ser arrastado. Inicia-se a operação de arrastar e largar chamando o método estático DoDragDrop e passando-lhe os dados transferidos. O DoDragDrop método irá automaticamente envolver os dados em a DataObject , se necessário. Para maior controlo sobre o formato dos dados, pode encapsular os dados antes DataObject de os passar para o DoDragDrop método.
O valor devolvido pelo DoDragDrop método é o valor da DragEventArgs.Effects propriedade definida no gestor de eventos do Drop drop target. Se o valor de retorno não corresponder a um dos allowedEffects especificados na chamada para DoDragDrop, a operação de arrastar e largar não é realizada.