#712 – Showing a Custom Mouse Cursor While Dragging
December 14, 2012 Leave a comment
You can use a non-default cursor while a drag-and-drop operation is in process by handling the GiveFeedback event.
In the example below, we load a custom cursor from a .cur file located in the same directory as the executing application.
private void Label_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { DataObject data = new DataObject(DataFormats.Text, ((Label)e.Source).Content); DragDrop.DoDragDrop((DependencyObject)e.Source, data, DragDropEffects.Copy); } private void Label_Drop(object sender, DragEventArgs e) { ((Label)e.Source).Content = (string)e.Data.GetData(DataFormats.Text); } private Cursor customCursor = null; private void Label_GiveFeedback(object sender, GiveFeedbackEventArgs e) { if (e.Effects == DragDropEffects.Copy) { if (customCursor == null) customCursor = new Cursor(new FileStream("Earth.cur", FileMode.Open)); e.UseDefaultCursors = false; Mouse.SetCursor(customCursor); } else e.UseDefaultCursors = true; e.Handled = true; }