UserControl всегда сверху (самый верхний, XAML / WPF) - PullRequest
1 голос
/ 01 декабря 2010

Я использую WPF NotifyIcon от Philipp Sumi . Он имеет возможность использовать WPF UserControl в качестве всплывающего окна на иконке в трее. Это работает очень хорошо, но в одной ситуации у меня есть другое всплывающее окно из другого приложения, которое отображается в верхней части моего всплывающего окна. Я хочу, чтобы мое всплывающее окно всегда было сверху.

Можно ли это сделать? Так может ли влиять z-порядок UserControl?

Редактировать - реакция на комментарии: Я понимаю, что мой вопрос выглядит глупо, потому что другое приложение находит его информацию столь же важной, и думает, что он должен быть на вершине. В моем случае это не та ситуация. Я подключаюсь к внешнему приложению. Целью этого приложения является загрузка данных с внешнего устройства. Когда приложение заканчивается, во всплывающем окне появляется сообщение «загрузка завершена». Затем мое приложение обрабатывает данные. Когда мое приложение завершает обработку (почти сразу), оно отображает окно: «Завершена обработка, нажмите здесь, чтобы показать данные». Итак: в моем конкретном случае информация из моего всплывающего окна более полезна для пользователя, потому что она содержит кнопку, которую он должен нажать. Оба всплывающих окна «говорят» об одних и тех же данных. Я понимаю, что это может вызвать больше комментариев вроде: «Зачем использовать всплывающее окно?». Пожалуйста, сосредоточьтесь на ответе на вопрос, а не на альтернативных решениях.

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Вы можете попробовать сделать другое всплывающее окно "не самым верхним", а затем показать свое всплывающее окно. Вам нужно будет найти другое всплывающее окно, перечислив все открытые окна с помощью EnumWindows API-функции, а затем удалите его верхний статус с помощью SetWindowsPos . Но это определенно грязная и хрупкая уловка (если вы вообще можете заставить ее работать).

http://pinvoke.net/default.aspx/user32.EnumWindows http://pinvoke.net/default.aspx/user32/SetWindowPos.html

1 голос
/ 01 декабря 2010

ну, нет такой MakeMyThingSuperTopMost() штуковины, вы должны прочитать здесь почему.

...