PDA

Просмотр полной версии : Делаем заставку к программе...


крайслер
25.06.2012, 08:41
Создаем проект C# - WinForm.
Добавляем форму к проекту...
Form1 - будет заставкой
Form2 - основная область


Для начала сделаем © Yukikaze ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) , для этого в Main( Program.cs) пишем:
Form1 p = new Form1();
DateTime end = DateTime.Now + TimeSpan.FromSeconds(5);
p.Show();
while (end > DateTime.Now)
{
Application.DoEvents();
}
p.Close();
p.Dispose();
Application.Run(new Form2());

TimeSpan.FromSeconds(5) - |5|- время в секундах через которое сменятся формы.

Перейдем к настройке формы(Form1):
В свойствах формы выставляем
StartPosition - CenterScreen (будет появляться в центре экрана не зависимо от разрешения)
FormBorderStyle - None (отрезаем у формы все оформление)
[Ссылки могут видеть только зарегистрированные и активированные пользователи]



Теперь в public Form1() дописываем:
AllowTransparency = true;
this.BackColor = Color.Beige;
this.TransparencyKey = BackColor;
Это сделает форму прозрачной не влияя на другие элементы(вроде правильно выразился)))

Собственно все готово...

Добавим картинку:
Создаем PNG в графическом редакторе(меня больше устраивает надпись на прозрачном фоне), и указываем в свойствах Form1 в качастве фона:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]


Получим что-то вроде этого:
[Ссылки могут видеть только зарегистрированные и активированные пользователи]


Можно все дополнить плавным затуханием:
Для этого дабавляем таймер - кликаем на него 2 раза и пишем примерно следующее:
this.Opacity -= .01;
if (this.Opacity == 0)
{
timer1.Stop();
}
В public Form1() дописываем:
timer1.Start();
Подобрать интервалы и получится очень даже не плохо...

Во вложениях проект(в архиве нет .EXE и .dll, только тексты)
Параноя ([Ссылки могут видеть только зарегистрированные и активированные пользователи] 9a08ecaa79da46/analysis/1340599786/)

Yukikaze
27.06.2012, 04:52
Придумал систему покруче, появляется заставка, а в это время идет загрузка формы (например если много элементов и это занимает много времени) и когда форма полностью загружена исчезает заставка и появляется форма. Пример прилагается.

DEACON78
29.06.2012, 13:39
а еслиб сделать сначало заставку крайслера, а как заставка пройдет появится загрузка формы ...
былоб круто или это не нужно?

Yukikaze
29.06.2012, 13:47
DEACON78, справедливо, заставка к заставке.
Что может быть круче чем одна заставка?
-Конечно же две заставки.

maSter™
01.07.2012, 00:11
а что то вроде анимации можно?!

крайслер
01.07.2012, 00:22
а что то вроде анимации можно?!
Все можно... Стоит только захотеть....
ImageAnimator ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

Sinyss
01.07.2012, 01:33
Еще нужно понять и научиться.
Если захотел то это уже не проблема.

Skilful
07.07.2012, 22:24
Все можно... Стоит только захотеть....
достаточно включить гугл /problem

А по теме, не легче отдельный Xaml компонент, его загружать.
[теория]
Нам нужно будет сделать сначала несколько Xaml компонентов ( в которое помещаем нужную картинку ). Делаем несколько видов и с похожим названием (например : part1, part2 и т.д (что бы потом могли загружать).
Сейчас без компилятора, так что буду все по памяти писать:

Создаем проект и открываем файл Program.cs и вставляем :

using System;
using System.Windows.Forms;
using System.Timer;
using System.IO;
namespace *имя сборки*
{
static class Program
{
System.Timer.Timers timer;
string[] filename;

[STAThread]
static void Main()
{
filename = File.GetFiles("*.xaml",Directory.GetCurrentDirectory());
timer = new System.Timer.Timers();
timer.AutoReset = true;
timer.Interval = 10 * 1000; //1 секунда = 1000 млс.
timer.Enabled += new EventArgt(Start);
timer.Enabled = true;
}

static int i = 0;

public void Start(object sender, EventArgt e)
{
try
{
if(filename.Lenght != 0)
{
if(i >= filename.Lenght) i = 0;
Uri uri = new Uri(filename[i], UriKind.Relative );
Application.LoadComponent(uri);
i +=1;
}
else MessageBox.Show("ВНИМАНИЕ!! Компоненты не найден!");
}
catch { MessageBox.Show("Ошибка загрузки компонента !");}
}
}
}
вроде должно работать /problem Компилятор качать лень, так что доделываем сами (если не сработает).

Sinyss
07.07.2012, 22:37
Зачем смешивать WPF и WinForms?

Skilful
07.07.2012, 22:51
Зачем смешивать WPF и WinForms?
потому что так круче, да и выглядеть мне кажется лучше будет.
(не будет фоновых остатков по краям текста) /bonk

Sinyss
07.07.2012, 23:42
Согласен, сглаживание добавится, но возможно такие края скорее есть виной автора а не системы....

Yukikaze
07.07.2012, 23:59
Sinyss, скорей системы, абсолютно гладких краев у тбя не получится сделать

Skilful
08.07.2012, 00:40
вот-вот. WPF очень иногда бывает кстати, вот например компоненты винформ не важнецки выглядят, а с помощью возможностей впф можно красиво сделать. Я вот себе ништяковкий скин сделал для формы и компонентов.
Но сперва подглядел в одну из библиотек DevExpress /bonk Так бы показал, но сижу не со своего компа

[Na`Vi]DendI
22.07.2012, 03:09
Не хотел создавать отдельную тему поэтому спрошу здесь.
Возможно ли сделать так что бы картинка мигала при запуске ПО ? спасибо.

крайслер
22.07.2012, 08:59
DendI;3232952"]картинка мигала при запуске ПО ?
Анимация? Не?

Все можно... Стоит только захотеть....
ImageAnimator ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

[Na`Vi]DendI
22.07.2012, 21:29
Анимация? Не?
Уже гуглил и был на майкре)
Другого нечего нет ?

the-boxi
22.07.2012, 23:48
DendI;3236405"]Уже гуглил и был на майкре)
Другого нечего нет ?
Есть.
Берем и используем WPF.
Качаем студию для этого - Microsoft Expression Blend.
И там на свой вкус можно создавать много всего интересного.

valkiriy
31.10.2013, 17:53
хорошо а если у меня вместо формы используется xaml разметка?