在OnGiveFeedback覆盖中拖动期间获取鼠标位置

时间:2013-09-20 20:38:10

标签: c# html wpf drag-and-drop

我有一个使用内置WPF拖放功能的项目。当可拖动项目位于可放置项目内时,我正在使用OnGiveFeedback事件覆盖来更改光标。

我的问题是我试图隔离拖放的控件嵌入在两侧还包含HTML的区域中。当我拖动HTML区域时,我的光标会像在拖放区域上一样变化。

我试图通过在我的OnGiveFeedback覆盖中的DragDropEffect = DragDropEffect.Move时获取鼠标位置并确保鼠标仍然在我的控制范围内来解决这个问题。

我似乎无法找到从此覆盖中获取鼠标位置的方法。 Mouse.Position返回我的Drag开始的点,所以我假设一旦拖动操作开始,鼠标事件就会被阻止。

非常感谢任何见解。

代码段:

    protected override void OnGiveFeedback(GiveFeedbackEventArgs e)
    {
        // These Effects values are set in the drop target's
        // DragOver event handler.
        if (e.Effects.HasFlag(DragDropEffects.Move) || e.Effects.HasFlag(DragDropEffects.Copy))
        {
            Mouse.SetCursor(Cursors.Cross);
        }
        else
        {
            Mouse.SetCursor(Cursors.Arrow);
        }
        e.Handled = true;
    }

1 个答案:

答案 0 :(得分:0)

为什么不重写OnDragEnter和OnDragLeave并从那里更改cruser。