Размещенное окно в WPF не получает сообщения мыши
Говоря немного о размещении пользовательских элементов управления WinForms в моем приложении WPF, я на самом деле размещаю формы Delphi, то есть окна верхнего уровня. Я делаю это через вуду в блоге Как разместить HWND верхнего уровня в WPF.
Почти все работает отлично. Я посылаю COM-сервер, встроенный в Delphi, строку пути меню, и он отправляет обратно дескриптор окна, который я передаю элементу управления хоста, описанному в блоге. Окно Delphi получает почти все события (точнее, сообщения Windows) правильно, без какого-либо вмешательства с моей стороны.
Единственная проблема - кнопки. Они получают событие / сообщение о клике в порядке и работают, но теперь ребята из Delphi добавили новые значки для кнопок, и у каждой кнопки есть активный значок, значок наведения и значок щелчка. Они не получают ни одного сообщения, которое они должны изменить эти значки. Почему почти все сообщения работают, кроме этих? Что я могу прочитать и / или сделать, чтобы попытаться исправить это?
1 ответ
В случае MouseOver отправьте пользовательское сообщение и поймайте его.
WPF и Win32 Взаимодействие
HWND внутри WPF > Заметные различия в поведении ввода
Пока мышь находится над HwndHost, ваше приложение не получает события мыши WPF, и значение свойства WPF IsMouseOver будет ложным.