DragDrop::DoDragDrop Method (DependencyObject^, Object^, DragDropEffects)
Initiates a drag-and-drop operation.
Assembly: PresentationCore (in PresentationCore.dll)
public: [SecurityCriticalAttribute] static DragDropEffects DoDragDrop( DependencyObject^ dragSource, Object^ data, DragDropEffects allowedEffects )
Parameters
- dragSource
-
Type:
System.Windows::DependencyObject^
A reference to the dependency object that is the source of the data being dragged.
- data
-
Type:
System::Object^
A data object that contains the data being dragged.
- allowedEffects
-
Type:
System.Windows::DragDropEffects
One of the DragDropEffects values that specifies permitted effects of the drag-and-drop operation.
Return Value
Type: System.Windows::DragDropEffectsOne of the DragDropEffects values that specifies the final effect that was performed during the drag-and-drop operation.
| Exception | Condition |
|---|---|
| ArgumentNullException | dragSource or data is null. |
It is the responsibility of your application to determine when a drag occurs, and then initiate the drag-and-drop operation. Typically, this is when a MouseDown and MouseMove sequence of events occurs over the element to be dragged. You initiate the drag-and-drop operation by calling the static DoDragDrop method and passing the transferred data to it. The DoDragDrop method will automatically wrap the data in a DataObject if necessary. For greater control over the data format, you can wrap the data in a DataObject before passing it to the DoDragDrop method.
The value returned from the DoDragDrop method is the value of the DragEventArgs::Effects property set in the drop target’s Drop event handler. If the return value does not match one of the allowedEffects specified in the call to DoDragDrop, the drag-and-drop operation is not performed.
The following example shows how to initiate a drag-and-drop operation from the MouseMove event handler of an Ellipse element to make it a drag source. The transferred data is the string representation of the ellipse’s Fill property. The data is passed to the DoDragDrop method as a string and is automatically wrapped in a DataObject.
Available since 3.0