2013-09-20 3 views
1

У меня есть проект, который использует встроенную функциональность 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; 
    } 

ответ

0

почему вы не переопределить OnDragEnter и OnDragLeave и изменить Cruser оттуда.

Смежные вопросы