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