У меня есть контроль Winforms в WPF WindowsFormsHost. Элемент управления Winforms является пассивным и не должен обрабатывать событие мыши. События мыши должны быть подняты, как обычно, из самого внутреннего элемента управления WPF в визуальном дереве WPF, поэтому WindowsFormsHost (или следующий). Но никакое событие не срабатывает вообще.Держите мышь в пузырьках от WindowsFormsHost на
Как мне настроить WindowsFormsHost, элемент управления Winforms, чтобы достичь этого?
Примечание: KeyDown и KeyUp ведут себя так, как ожидалось. Но события мыши не делают, как показано на следующем скриншоте Snoop:
Winforms делает немного, чтобы изменить способ, генерирующий для Windows и перенаправляет уведомления за пределами обработки сочетание клавиш и отражает некоторые сообщения от родителя к ребенку. MouseWheel пузырьки для родителя, а остальные нет. WindowsFormsHost не делает ничего, чтобы изменить это. Так что это вполне ожидаемо. Если элемент управления не должен принимать входные события, тогда его свойство Enabled должно иметь значение false. Вам, вероятно, это не нравится :) –
Спасибо! Пожалуйста, объясните ... если вы замените WindowsFormsHost простым WPF UserControl, тогда работа пузырьков и событие MouseDown начнут пузыриться и поднимать хакеры подписчиков на пути вверх. Кажется, что Winforms Control сохраняет событие мыши для себя и не передает событие своему хосту. Это верно? – jeromerg