background img

The New Stuff

Создание заставки SplashScreen

В данной статье речь пойдет о том как добавить красочное "приветствие" нашему приложению.
Недавно увидел статью на хабре как создать SplashScreen для приложений WinForms, но в ней так все сложно что по моему они создают заново велосипед ))  Я решил что это можно сделать гораздо проще...
Теория:
  • Splash Screen - это окно, которое появляется до появления основного окна приложения. Цели он может нести разные: красоту, функциональную нагрузку, рекламу и т.д
  • Принцип работы элементарен. Нам необходимо до вызова главной формы вызывать Splash Screen, производить какие нам нужны манипуляции и передавать управление главному окну.
1. Создадим новый проект WinForms.
2. Добавляем новую форму к проекту, в Solution Explorer клацаем правой кнопкой на имени проекта которого мы создали, после этого выбираем пункт Add->Windows Form... и в появившемся окне вводим название нашей новой формы которая и будет служить как SplashScreen.



3. Изменяем некоторые параметры нашего SplashScreen_а, выбираем нашу новую форму клацаем по вкладке Properties и изменяем StartPosition->CenterScreen (это чтоб окно при запуске появилось по центре экрана), ShowIcon->False, ShowIn Taskbar->False, FormBorderStyle->None, BackgroundImage - загружаем нужную картинку которая будет появляться при запуске программы как SplashScreen, BackgroundImageLayout->Stretch (подгоняем картинку под размера формы).
Вот что получилось у меня 


4. Из ToolBox добавляем таймер (Timer)  и в Properties  выставляем Interval->1.
5. Выбираем нашу форму SplashScreen и нажимаем клавишу F7 для открытия редактора кода.
6. В редакторе кода пишем следующее

01.public SplashScreen()
02.{
03.InitializeComponent();
04.Timer t = new Timer();
05.t.Interval = 6000;
06.t.Start();
07.t.Tick += new EventHandler(t_Tick);
08. 
09.timer1.Start();
10. 
11.Opacity = 0;
12.Timer timer = new Timer();
13.timer.Tick += new EventHandler((sender, e) =>
14.{
15.if ((Opacity += 0.005d) == 1) timer.Stop();
16.});
17.timer.Interval = 1;
18.timer.Start();
19.}
20.void t_Tick(object sender, EventArgs e)
21.{
22.Close();
23.}


Теперь нам надо еще вызвать нашу форму перед головной. Для этого делаем следующее
7. Ищем и открываем в Solution Explorer класс Progrem.cs и перед вызовом головного окна вызываем наш SplashScreen 

1.Application.Run(new SplashScreen());

Все теперь можно скомпилировать наш проект и посмотреть на результат!
Скорость для появление и исчезания  SplashScreen_а можно менять (я надеюсь вы разберетесь в коде программы сами), на этом все!!!
В данной статье речь пойдет о том как добавить красочное "приветствие" нашему приложению.
Недавно увидел статью на хабре как создать SplashScreen для приложений WinForms, но в ней так все сложно что по моему они создают заново велосипед ))  Я решил что это можно сделать гораздо проще...
Теория:
  • Splash Screen - это окно, которое появляется до появления основного окна приложения. Цели он может нести разные: красоту, функциональную нагрузку, рекламу и т.д
  • Принцип работы элементарен. Нам необходимо до вызова главной формы вызывать Splash Screen, производить какие нам нужны манипуляции и передавать управление главному окну.
1. Создадим новый проект WinForms.
2. Добавляем новую форму к проекту, в Solution Explorer клацаем правой кнопкой на имени проекта которого мы создали, после этого выбираем пункт Add->Windows Form... и в появившемся окне вводим название нашей новой формы которая и будет служить как SplashScreen.



3. Изменяем некоторые параметры нашего SplashScreen_а, выбираем нашу новую форму клацаем по вкладке Properties и изменяем StartPosition->CenterScreen (это чтоб окно при запуске появилось по центре экрана), ShowIcon->False, ShowIn Taskbar->False, FormBorderStyle->None, BackgroundImage - загружаем нужную картинку которая будет появляться при запуске программы как SplashScreen, BackgroundImageLayout->Stretch (подгоняем картинку под размера формы).
Вот что получилось у меня 


4. Из ToolBox добавляем таймер (Timer)  и в Properties  выставляем Interval->1.
5. Выбираем нашу форму SplashScreen и нажимаем клавишу F7 для открытия редактора кода.
6. В редакторе кода пишем следующее

01.public SplashScreen()
02.{
03.InitializeComponent();
04.Timer t = new Timer();
05.t.Interval = 6000;
06.t.Start();
07.t.Tick += new EventHandler(t_Tick);
08. 
09.timer1.Start();
10. 
11.Opacity = 0;
12.Timer timer = new Timer();
13.timer.Tick += new EventHandler((sender, e) =>
14.{
15.if ((Opacity += 0.005d) == 1) timer.Stop();
16.});
17.timer.Interval = 1;
18.timer.Start();
19.}
20.void t_Tick(object sender, EventArgs e)
21.{
22.Close();
23.}


Теперь нам надо еще вызвать нашу форму перед головной. Для этого делаем следующее
7. Ищем и открываем в Solution Explorer класс Progrem.cs и перед вызовом головного окна вызываем наш SplashScreen 

1.Application.Run(new SplashScreen());

Все теперь можно скомпилировать наш проект и посмотреть на результат!
Скорость для появление и исчезания  SplashScreen_а можно менять (я надеюсь вы разберетесь в коде программы сами), на этом все!!!

0 коммент.:

Отправить комментарий

Popular Posts