DragDrop.DoDragDrop(DependencyObject, Object, DragDropEffects) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje operaci přetažení.
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
Parametry
- dragSource
- DependencyObject
Odkaz na objekt závislosti, který je zdrojem přetahovaných dat.
- data
- Object
Datový objekt, který obsahuje přetahovaná data.
- allowedEffects
- DragDropEffects
Jedna z DragDropEffects hodnot, která určuje povolené účinky operace přetažení.
Návraty
Jedna z DragDropEffects hodnot, která určuje konečný efekt, který byl proveden během operace přetažení.
- Atributy
Výjimky
dragSource
nebo data
je null
.
Příklady
Následující příklad ukazuje, jak zahájit operaci přetažení z MouseMove obslužné rutiny události elementu Ellipse , aby se z ní přetáhl zdroj. Přenášená data jsou řetězcovou reprezentací vlastnosti elipsy Fill . Data se předají DoDragDrop metodě jako řetězec a automaticky se zabalí do 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
Poznámky
Je zodpovědností vaší aplikace určit, kdy k přetažení dojde, a pak zahájit operaci přetažení. Obvykle se jedná o MouseDown situaci, kdy dojde k posloupnosti událostí a MouseMove nad elementem, který se má přetáhnout. Operaci přetažení zahájíte voláním statické DoDragDrop metody a předáním přenesených dat do ní. V DoDragDrop případě potřeby metoda automaticky zabalí data do objektu DataObject . Pro větší kontrolu nad formátem dat můžete data DataObject před předáním metodě zabalit do objektu DoDragDrop .
Hodnota vrácená metodou DoDragDrop je hodnota DragEventArgs.Effects vlastnosti nastavené v obslužné rutině Drop události drop target. Pokud návratová hodnota neodpovídá jedné ze zadaných allowedEffects
ve volání , DoDragDropoperace přetažení se neprovádí.