2010-12-01 1 views
1

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

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

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

+1

каждый разработчик уверен, что их всплывающее окно является наиболее importatnt =) – 2010-12-01 10:58:13

+5

Что происходит, когда другое приложение использует тот же метод чтобы попасть поверх вашего всплывающего окна? – TheFogger 2010-12-01 12:21:57

ответ

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^