Я бьюсь головой о проблеме всплывающего окна WPF и надеюсь, что кто-нибудь сможет мне помочь :)
Схема выглядит так:
Наше приложение хранит список UIObjects - они представляют элементы, которые отображаются в окне просмотра 3d (через элемент UIRenderObject, который представляет собой просто квадратную сетку с растровым изображением на нем) и в виде дерева (через член TreeViewItem ).
В любом случае, когда объект обнаруживает щелчок правой кнопкой мыши, он пытается открыть всплывающее окно.
Код для этого настолько прост, насколько вы можете получить:
ContextMenu contextMenu = new ContextMenu();
//add content
contextMenu.IsOpen = true;
Когда я щелкаю в окне просмотра, все работает как положено - всплывающее окно открывается и остается открытым, пока не потеряет фокус или не будет сделан выбор.
Однако в древовидном представлении всплывающее окно теряет фокус и немедленно закрывается.
Я попытался явно установить фокус, явно установить PlacementTarget, пометить событие мыши как обработанное до и после вызова, чтобы открыть всплывающее окно, утончить пометку всплывающего окна как «StaysOpen» и дюжину других вещей закрывается немедленно.
Любая помощь будет высоко ценится. Заранее спасибо!