Окно WPF, которое отображается только в панели задач - PullRequest
0 голосов
/ 08 сентября 2011

Я не уверен, что то, что я хочу сделать, уместно, поэтому я немного объясню.

У нас есть большое приложение, которое требует времени для загрузки. Итак, у нас есть заставка. Экран-заставка вызывает чрезмерное время загрузки на удаленном рабочем столе (сервер терминалов). Чтобы облегчить это, мы хотим скрыть заставку при загрузке по RDP. Но нам все равно нужно хотя бы показать пользователю, что приложение загружается.

Итак, я подумал, может быть, просто показать что-то на панели задач (а не в системном трее), так как оно исчезнет после полной загрузки приложения (и будет заменено значком задачи главной формы). Однако любое решение WPF, на которое я смотрел, требует наличия видимой формы / окна, чтобы перейти в состояние панели задач.

Есть ли способ показать что-то на панели задач без отображения окна WPF?

Или есть другой способ показать состояние загрузки приложения без чего-либо на экране?

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

У нас была такая же проблема.

На удаленном рабочем столе мы сделали следующие шаги ...

  1. Мы настроили окно Splash так, чтобы оно не позволяло изменять размеры, и имели только кнопки «Свернуть» и «Закрыть».

  2. Мы удалили параметр WindowStyle = None, чтобы появилась строка заголовка окна Splash

  3. Мы установили ширину и высоту окна Splash равными нулю. Таким образом, все, что вы видите на экране, это маленький синий прямоугольник строки заголовка с текстом «Загрузка ... Пожалуйста, подождите ...» и кнопками сворачивания и закрытия.

  4. Мы использовали вызовы ядра Window, чтобы отключить кнопку «Закрыть» в строке заголовка. Таким образом, пользователь не смог отменить окно Splash.

  5. Таким образом, все, что может сделать пользователь, это свернуть или восстановить с панели задач.

После восстановления все, что он видит, это синий прямоугольник строки заголовка с текстом "Загрузка ...". Таким образом, окно также заняло свое место на панели задач, но скрыло всплывающую анимацию, и пользователь также знает, что заставка загружается. Для этого вы также можете обновить текст в строке заголовка, добавив больше полных остановок ...

Загрузка. Пожалуйста, подождите ..

Загрузка. Пожалуйста, подождите ...

Загрузка. Пожалуйста, подождите ....

Загрузка. Пожалуйста, подождите ..

0 голосов
/ 08 сентября 2011

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

Однако простое решение, о котором вы просите, - просто создать скрытое окно.Тот, который прозрачен, без границ или что-нибудь.Можно даже сделать ставку размером 0, 0. Таким образом, вы сможете получить требуемый элемент панели задач.

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