C# WPF等效于Control.CursorChanged事件

C# WPF等效于Control.CursorChanged事件,c#,wpf,drag-and-drop,cursor,C#,Wpf,Drag And Drop,Cursor,在wpf列表视图中拖动鼠标时,我试图在某个点更改鼠标光标。但是,当我设置鼠标时,它很快会被其他内容覆盖,并被更改回拖动光标 我不确定光标更改来自何处,它肯定不是来自我的代码,所以它必须是系统。如果是系统,那么我必须截取光标更改事件,并处理该事件,以便光标显示我想要的内容,对吗 那么是否存在与此Control.CursorChanged事件等效的WPF?或者也许有其他方法来解决这个问题 编辑: 这是我的部分代码 private void SetDragCursor() {

在wpf列表视图中拖动鼠标时,我试图在某个点更改鼠标光标。但是,当我设置鼠标时,它很快会被其他内容覆盖,并被更改回拖动光标

我不确定光标更改来自何处,它肯定不是来自我的代码,所以它必须是系统。如果是系统,那么我必须截取光标更改事件,并处理该事件,以便光标显示我想要的内容,对吗

那么是否存在与此Control.CursorChanged事件等效的WPF?或者也许有其他方法来解决这个问题

编辑:

这是我的部分代码

    private void SetDragCursor()
    {
        if (_badDragLoc)
        {
            Mouse.OverrideCursor = Cursors.No;
        }
        else
        {
            Mouse.OverrideCursor = Cursors.Arrow;
        }
    }
    private void listView_DragOver(object sender, DragEventArgs e)
    {
        if (at a bad drag location)
        {
            _badDragLoc = true;
            SetDragCursor();
        }
    }
我还有一个拖离事件处理程序,其中还有SetDragCursor()方法。当我在调试器中一步一步地遍历每一行代码时,鼠标在进入drag-leave处理程序后立即从no-cursor变为drag-cursor。这就是为什么我认为它必须是系统

如果它确实是系统,那么如果我能够捕获事件触发,我就可以自己处理这些事件,而不是让它冒泡通过


谢谢大家!

只是工作方式不同,在DragOver事件期间设置光标的方法如下:

void listView__DragOver(object sender, DragEventArgs e)
     {
         if (!e.Data.GetDataPresent("Images"))
         {
             e.Effects = DragDropEffects.None;
             e.Handled = true;
         }
     }
根据指定给
e.Effects
的DragDropEffects枚举值,鼠标将更改光标


不要调用
鼠标。因为这不是正确的方法。

错误的方法。如果使用事件,则光标将在两者之间快速闪烁。你在“设置我的鼠标”中做错了什么,这可能是不必要的。邮政编码,看到了吗?这里可能有一些关于游标的相关信息…@Lin:不在乎游标在调试过程中是如何变化的。啊,在我没有将handled设置为true之前,这是可行的,所以我猜是其他东西修改了它。但是,在拖动过程中,我的光标仍偶尔闪烁。我还发现,更改AllowDrop属性也会更改光标,但这会使我无法与不允许拖放的项目交互。我需要在DragOver事件处理程序期间与该项交互,因此将AllowDrop设置为false不是我的选项。有没有其他方法可以更改光标,或者有没有方法可以使光标停止闪烁?谢谢