DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Metodo

Definizione

Inizia un’operazione di trascinamento della selezione.

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

Parametri

dragSource
DependencyObject

Un riferimento all'oggetto di dipendenza che è l'origine dei dati trascinati.

data
Object

Un oggetto dati che contiene i dati trascinati.

allowedEffects
DragDropEffects

Uno dei valori DragDropEffects che specifica effetti consentiti dell'operazione di trascinamento della selezione.

Restituisce

Uno dei valori DragDropEffects che specifica l'effetto finale ottenuto durante l'operazione di trascinamento della selezione.

Attributi

Eccezioni

dragSource o data è null.

Esempio

Il seguente esempio mostra come avviare un'operazione di trascinamento e rilascio dal gestore dell'evento MouseMove di un elemento Ellipse per impostarlo come origine di trascinamento. I dati trasferiti sono la rappresentazione stringa della proprietà dell'ellisse Fill . I dati vengono passati al DoDragDrop metodo come stringa e vengono automaticamente inseriti in un DataObjectoggetto .

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

Commenti

È responsabilità dell'applicazione determinare quando si verifica un trascinamento e quindi avviare l'operazione di trascinamento. In genere, si tratta di una MouseDown sequenza di eventi che MouseMove si verifica sull'elemento da trascinare. Si avvia l'operazione di trascinamento della selezione chiamando il metodo statico DoDragDrop e passando i dati trasferiti. Il metodo DoDragDrop eseguirà il wrapping automatico dei dati in DataObject, se necessario. Per un maggiore controllo sul formato dei dati, è possibile eseguire il wrapping dei dati in un DataObject prima di passarli al metodo DoDragDrop.

Il valore restituito dal DoDragDrop metodo è il valore della DragEventArgs.Effects proprietà impostata nel gestore eventi di Drop destinazione di rilascio. Se il valore restituito non corrisponde a uno dei allowedEffects valori specificati nella chiamata a DoDragDrop, l'operazione di trascinamento non viene eseguita.

Si applica a