Condividi tramite


DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Metodo

Definizione

Avvia 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

Riferimento all'oggetto dipendenza che rappresenta l'origine dei dati trascinati.

data
Object

Oggetto dati che contiene i dati trascinati.

allowedEffects
DragDropEffects

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

Restituisce

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

Attributi

Eccezioni

dragSource o data è null.

Esempio

Nell'esempio seguente viene illustrato come avviare un'operazione di trascinamento della selezione dal MouseMove gestore eventi di un Ellipse elemento per renderla un'origine di trascinamento. I dati trasferiti sono la rappresentazione di stringa della proprietà dell'ellisse Fill . I dati vengono passati al DoDragDrop metodo come stringa e vengono inseriti automaticamente in un oggetto 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

Commenti

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

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

Si applica a