WPF Popup Альтернатива - PullRequest
       1

WPF Popup Альтернатива

9 голосов
/ 05 июля 2011

У меня есть окно с всплывающим окном, которое появляется при двойном щелчке элемента в просмотре списка.
Он центрируется в главном окне и выглядит там очень красиво.
Проблема в том, что пользователь перемещает главное окно или выбирает другую программу, и всплывающее окно всплывает поверх других элементов.

Я хотел бы иметь что-то вроде всплывающего окна, означающего, что оно плавает поверх других элементов в окне, но прилипает к главному окну, когда оно движется (остается в центре), и не плавает поверх других программ. .
Могу ли я заставить всплывающее окно действовать так или есть лучший способ сделать это?

Ответы [ 4 ]

4 голосов
/ 05 июля 2011

Всплывающие окна не будут перемещаться, пока размер окна изменяется или перемещается.Потому что всплывающие / контекстные меню не являются частью визуального дерева.Для этого вы должны использовать Adorner .Я предлагаю прочитать эту серию из четырех частей для быстрого начала работы с Adorner.

3 голосов
/ 10 июля 2011

Если вы хотите использовать сторонний / открытый исходный код (MS-PL), расширенный инструментарий WPF имеет элемент управления ChildWindow .

Технически это не отдельное окно, но кажется, что это отдельное окно для пользователя.

3 голосов
/ 05 июля 2011

Возможно, что Adorner будет соответствовать вашим потребностям в этом случае лучше, чем всплывающее окно.Над вашими окнами могут всплывать и украшения.Есть несколько отличий, главным образом в том, что рекламодатель привязан к элементу UIE (который включает в себя окна).

0 голосов
/ 05 июля 2011

Я не нашел способа заставить всплывающие окна перестать делать это в WPF

В качестве альтернативы вы можете создать UserControl, который действует как всплывающее окно.

Обычно я размещаю раздел контента приложения вместе с Popup в элементе управления Canvas, и когда IsPopupOpen изменяется на True, я устанавливаю всплывающее окно Visibility = Visible.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...