2010-03-17 3 views
11

Заставка/Загрузка окна в приложении WPF установлена ​​в Topmost = "True". Теперь эти окна находятся поверх всех других окон, даже когда вы переключаетесь на другое приложение (потому что загрузка займет некоторое время). Я не хочу такого поведения.WPF-Window Topmost для собственного приложения?

Если я установил Topmost = "False" Окно не в верхней части. Но если вы вернетесь к моему приложению после работы с другим приложением, мои клиенты иногда не понимают, что Loading-Windows все еще работает. Приложение, как представляется, не отвечает, потому что окно загрузки в фоновом режиме по-прежнему является активным окном, и оно является модальным.

Я хочу иметь верхний край загрузки, но только если мое приложение находится на переднем плане. Если вы переключитесь на другую программу, окно должно исчезнуть и снова появиться, когда вы вернетесь.

+0

Просто из любопытства, почему вы загружаете другие окна вообще, пока отображается ваш экран заставки? Обычно, когда приложение использует экран Splash, это единственное видимое окно для этого приложения в то время .... – BFree

+0

Поскольку загрузка занимает так много времени, мой босс хочет, чтобы некоторые данные уже были видны в главном окне. Вы не можете взаимодействовать с данными, но по крайней мере вы можете посмотреть на них. – TalkingCode

ответ

10

Вы можете попытаться использовать свойство «Владелец» окна, при этом заставка всегда будет перекрывать другие окна.

+0

В моем приложении MainWindow требуется время для создания, поэтому оно пока не создано, пока отображается экран заставки. Поэтому я не могу установить владельца окна заставки в главное окно. –

2

Возможно, изменение в шаблоне загрузки вашего MainWindow может помочь. Если вы можете положить время потребляя часть загрузки окна в фоновом потоке, то вы можете взять этот путь:

  1. Показать MainWindow пустых или голые кости (пустые поля/сетка и т.д.)
  2. Launch метод асинхронной нагрузки на получить данные и заполнить главное окно
  3. Создайте заставку, установите владельца самостоятельно и покажите
  4. не забудьте закрыть заставку при завершении загрузки.

, который должен поддерживать всплеск сверху при обработке груза.