У меня есть проект, который использует встроенную функциональность WPF Drag and Drop. Я использую переопределение события OnGiveFeedback для изменения курсора, когда перетаскиваемый элемент находится внутри объекта с возможностью изменения.Получить позицию мыши во время перетаскивания в OnGiveFeedback override
Моя проблема в том, что элемент управления, который я пытаюсь изолировать от перетаскивания, встроен в область, которая также содержит HTML по сторонам. Когда я перетаскиваю область HTML, мой курсор изменяется, как и над областью перетаскивания.
Я пытаюсь исправить это, получив положение мыши, когда мой DragDropEffect = DragDropEffect.Move внутри моего переопределения 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;
}