我有一个使用内置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;
}
答案 0 :(得分:0)
为什么不重写OnDragEnter和OnDragLeave并从那里更改cruser。