1

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

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

我试图通过在我的 OnGiveFeedback 覆盖中获取鼠标位置来解决此问题,并确保鼠标仍在我的控制范围内。

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

任何见解将不胜感激。

代码片段:

    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;
    }
4

1 回答 1

0

为什么不覆盖 OnDragEnter 和 OnDragLeave 并从那里更改 cruser。

于 2013-09-20T20:45:03.300 回答