WPF拖拽过程中修改鼠标指针属性
生活随笔
收集整理的這篇文章主要介紹了
WPF拖拽过程中修改鼠标指针属性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在WPF中鼠標拖拽時,指針默認是個圓圈(呵呵,有點難看),網上找了一圈沒有找到好的方法,在此把我的解決過程寫下:
在拖拽過程中使用到了DragDrop類,類中DoDragDrop方法為啟動拖拽操作,而改變鼠標指針事件處理函數應當在執行啟動拖拽操作之前加入到拖拽的事件隊列中去,在DragDrop類中有一系列的事件處理函數,而需要操作鼠標指針的事件是GiveFeedback,代碼中只要加入一個處理函數即可,上代碼:
private void StartDragWindow<T>(MouseEventArgs e, T dragElement) where T : ContentControl{QueryContinueDragEventHandler queryhandler = new QueryContinueDragEventHandler(DragSource_QueryContinueDrag);dragElement.QueryContinueDrag += queryhandler;DataObject data = new DataObject(typeof(string), "Moved!!!");this._dragdropWindow.Show();//設置鼠標事件GiveFeedbackEventHandler handler = new GiveFeedbackEventHandler(DragSource_GiveFeedback);dragElement.GiveFeedback += handler;DragDropEffects de = DragDrop.DoDragDrop(dragElement, data, DragDropEffects.Move);dragElement.GiveFeedback -= handler;//執行完畢去除處理事件dragElement.QueryContinueDrag -= queryhandler;}void DragSource_GiveFeedback(object sender, GiveFeedbackEventArgs e){Mouse.SetCursor(Cursors.Arrow);//修改鼠標樣式e.UseDefaultCursors = false;e.Handled = true;}//更新位置void DragSource_QueryContinueDrag(object sender, QueryContinueDragEventArgs e){this.UpdateWindowLocation();}搞定,收工
詳細了解DragDrop類的拖拽事件處理,請參考這里http://blogs.msdn.com/b/jaimer/archive/2007/07/12/drag-drop-in-wpf-explained-end-to-end.aspx
轉載于:https://www.cnblogs.com/az235/archive/2012/11/21/2781041.html
總結
以上是生活随笔為你收集整理的WPF拖拽过程中修改鼠标指针属性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机科学主要领域
- 下一篇: CROC-MBTU 2012, Elim