У меня есть кнопка, которая при нажатии открывается всплывающее окно. Всплывающее меню - это подменю, содержащее больше кнопок. При нажатии одной из кнопок в подменю всплывающее окно закрывается. Я также хочу, чтобы Popup закрывался, когда пользователь щелкает где-то вне Popup. Также важно отметить, что на большинстве экранов используется WindowsFormsHost, который отображает элемент управления OpenGL Win Forms.Как закрыть всплывающие окна, используемые в качестве подменю в WPF
Закрытие всплывающего окна при нажатии кнопки подменю Я смог сделать. Внутри обработчика кликов для этих кнопок я закрываю всплывающее окно. Однако закрытие всплывающей подсказки при нажатии в другом месте - вот где я столкнулся с проблемой.
Что я пробовал:
Установка PopUp.StaysOpen ложь. Это работает в том, что при нажатии в другом месте экрана всплывающее окно закрывается. Однако в элементе управления Win Forms требуется щелчок, чтобы закрыть всплывающее окно, а затем второй щелчок, чтобы выполнить все действия. Это очень нежелательно.
Я попытался обработать событие LostFocus для кнопки, которая открывает всплывающее окно и устанавливает значение StaysOpen равным true. Это работает в том, что при нажатии на Popup не требуется второй щелчок на элементе управления Win Forms. Теперь проблема заключается в том, что событие LostFocus обрабатывается, а всплывающее окно закрывается до того, как оно читает щелчок на любых кнопках всплывающего окна. Это делает невозможным использование подменю.