WPF ドラッグ アンド ドロップ機能を使用しているプロジェクトがあります。OnGiveFeedback イベント オーバーライドを使用して、ドラッグ可能なアイテムがドロップ可能なアイテム内にあるときにカーソルを変更しています。
私の問題は、ドラッグ アンド ドロップを分離しようとしているコントロールが、側面に HTML を含む領域に埋め込まれていることです。HTML 領域をドラッグすると、カーソルがドロップ領域の上にあるように変化します。
OnGiveFeedback オーバーライド内で DragDropEffect = DragDropEffect.Move のときにマウスの位置を取得し、マウスがまだコントロールの境界内にあることを確認して、これを修正しようとしています。
このオーバーライド内からマウスの位置を取得する方法が見つからないようです。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;
}