Сегодня 26 декабря, четверг ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Непутевые заметки о C#
Непутевые заметки о C#
Голосов: 0
Адрес блога: http://i-am-a-kernel.blogspot.com/
Добавлен: 2012-10-31 18:45:33
 

Плавная смена цвета элементов WinForms

2012-10-31 02:37:00 (читать в оригинале)

Вот прошло совсем не много времени, и новая публикация. Сегодня я покажу как сделать интересный эффект смены цвета.
Демонстрацию буду проводить на следующем примере: Заменить текст в элементе label по клику по кнопке, но смена текста должна происходить плавно. Так как лучше один раз показать, чем 100 раз рассказать, то тут вы можете скачать ДЕМО.
Для начала создадим проект WinForms и добавим на форму: Label и Button.

Вот код формы:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dR = label1.BackColor.R - label1.ForeColor.R;
dG = label1.BackColor.G - label1.ForeColor.G;
dB = label1.BackColor.B - label1.ForeColor.B;
sign = 1;
Timer timer = new Timer();
timer.Interval = 100;
timer.Tick += timer_Tick;
timer.Start();
}
int dR, dG, dB, sign;
void timer_Tick(object sender, EventArgs e)
{
if (Math.Abs(label1.ForeColor.R - label1.BackColor.R) < Math.Abs(dR / 10))
{
sign *= -1;
label1.Text = "Новый текст";
}
label1.ForeColor = Color.FromArgb(255, label1.ForeColor.R + sign * dR / 10, label1.ForeColor.G + sign * dG / 10, label1.ForeColor.B + sign * dB / 10);
if (label1.BackColor.R == label1.ForeColor.R + dR)
{
((Timer)sender).Stop();
}
}
}
При запуске приложения, в label один текст. После нажатия на кнопку, он блекнет, потом проявляется новый текст. Вся анимация занимает 2 секунды... Основная идея в том, что изменения свойств должны идти не в цикле и за доли секунды, а через таймер и хоть какое то время, которое будет различать пользователь.

Этот же прием можно использовать для любого элемента интерфейса WinForms, не ограничивайте себя, пробуйте.

P.S. Если хотите писать красивости в пользовательском интерфейсе, переходите на XAML, там все это намного проще...

Тэги: .net, winforms, интерфейс

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»
Изменения рейтинга
Категория «IT»
Взлеты Топ 5
+646
670
Remi_Etien_Le_Bo
+628
671
Темы_дня
+606
617
ClericDade
+578
618
OnepaTop
+544
583
wishmaster-moscow
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.