Делаем заставку для приложения WPF

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

Способ 1. Файл изображения

Добавляем к проекту файл с изображением (рекомендуется формат PNG) и в свойствах устанавливаем действие при сборке «SplashScreen».

Действие при сборке

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

Это самый простой способ сделать заставку для программы на WPF.

Способ 2.  Класс SplashForm

В WPF предусмотрен специальный класс для реализации базового функционала заставки – SplashScreen.

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

Также поддерживается загрузка изображения из ресурсов в сборке, но обычно она не требуется и потому к ней практически не прибегают.

Чтобы показать заставку нужно воспользоваться методом Show, который принимает в качестве параметра состояние режима автоматического скрытия заставки.

Создание объекта SplashScreen и вызов метода Show производится либо в обработчике события Startup (в файле App.xaml), либо в конструкторе главной формы программы до вызова метода IntializeComponent.

В данном случае заставка будет скрыта после полной загрузки программы (поведение аналогичное способу 1).

Если параметр равен false, скрывать заставку нужно вручную при помощи метода Close. Это метод принимает единственный параметр типа TimeSpan, который задаёт интервал времени в течении которого заставка будет постепенно становиться всё более прозрачной, пока не исчезнет с экрана.

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

Способ 3. Собственная форма для заставки

Первых двух способов более чем достаточно для подавляющего большинства случаев, когда нужно сделать заставку для программы. Но, если они всё-таки не подходят, можно написать свою форму заставки и, например, показывать в ней анимацию или прогресс загрузки программы.

Т.к. привести примеры для всех возможных вариантов использования такой формы в принципе не представляется возможным, опишем лишь её «каркас», который, собственно, и отвечает за работу заставки.

Функционал приведённого примера предельно прост.

Мы создаём объект таймера, который через 5 секунд (при желании можно задать другой интервал) закроет форму.

Также для заставки нужно отключить верхнюю панель. Для этого в свойствах форму устанавливаем WindowState равным None.

На такой форме после соответствующей доработки можно отображать любые элементы управления WPF, анимацию и даже видео. Пожалуй, единственное для чего она не подойдёт, так это отображение прогресса загрузки приложения, т.к. в этом случае необходимо получение информации о ходе загрузки для того же ProgressBar. Только подобные заставки, в силу своей сложности, заслуживают отдельной статьи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *