@@ -489,6 +489,7 @@ private void NoInliningConstructor()
489489 DragOver += OnDragOver ;
490490 DragLeave += OnDragLeave ;
491491 Drop += OnDrop ;
492+ GiveFeedback += OnGiveFeedback ;
492493
493494 IsVisibleChanged += OnIsVisibleChanged ;
494495
@@ -610,6 +611,7 @@ protected virtual void Dispose(bool isDisposing)
610611 DragOver -= OnDragOver ;
611612 DragLeave -= OnDragLeave ;
612613 Drop -= OnDrop ;
614+ GiveFeedback -= OnGiveFeedback ;
613615
614616 IsVisibleChanged -= OnIsVisibleChanged ;
615617
@@ -787,7 +789,8 @@ void IRenderWebBrowser.UpdateDragCursor(DragOperationsMask operation)
787789 /// <param name="operation">describes the allowed operation (none, move, copy, link). </param>
788790 protected virtual void UpdateDragCursor ( DragOperationsMask operation )
789791 {
790- //TODO: Someone should implement this
792+ var dragCursor = DragCursorProvider . GetCursor ( operation ) ;
793+ UiThreadRunAsync ( ( ) => Mouse . SetCursor ( dragCursor ) ) ;
791794 }
792795
793796 /// <summary>
@@ -1531,6 +1534,16 @@ private void OnDragOver(object sender, DragEventArgs e)
15311534 }
15321535 }
15331536
1537+ /// <summary>
1538+ /// Handles the <see cref="E:GiveFeedback" /> event.
1539+ /// </summary>
1540+ /// <param name="sender">The sender.</param>
1541+ /// <param name="e">The <see cref="GiveFeedbackEventArgs"/> instance containing the event data.</param>
1542+ private void OnGiveFeedback ( object sender , GiveFeedbackEventArgs e ) {
1543+ /// prevent showing default cursor, the appropriate cursor will be set by <see cref=UpdateDragCursor />
1544+ e . Handled = true ;
1545+ }
1546+
15341547 /// <summary>
15351548 /// Handles the <see cref="E:DragEnter" /> event.
15361549 /// </summary>
0 commit comments