DragDrop::DoDragDrop Method (DependencyObject^, Object^, DragDropEffects)


Initiates a drag-and-drop operation.

Namespace:   System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)

static DragDropEffects DoDragDrop(
	DependencyObject^ dragSource,
	Object^ data,
	DragDropEffects allowedEffects


Type: System.Windows::DependencyObject^

A reference to the dependency object that is the source of the data being dragged.

Type: System::Object^

A data object that contains the data being dragged.

Type: System.Windows::DragDropEffects

One of the DragDropEffects values that specifies permitted effects of the drag-and-drop operation.

Return Value

Type: System.Windows::DragDropEffects

One of the DragDropEffects values that specifies the final effect that was performed during the drag-and-drop operation.

Exception Condition

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.

No code example is currently available or this language may not be supported.

.NET Framework
Available since 3.0
Return to top