Создать анимированную кнопку - PullRequest
6 голосов
/ 18 ноября 2011

У меня есть кнопка создания анимации при нажатии?

enter image description here

с фотошопом. Я создал два изображения (включено и отключено).Вставьте поле рисунка в Windows Forms и нажмите «Событие». Нажмите, чтобы изменить изображение с включенного на отключенное, но анимация может быть у вас?

Примерно так:

enter image description here

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Использование GIF-таймера не требуется.

Использование оконных форм можно начать с создания анимированного GIF-файла для каждой кнопки.Это должно включать как прямое, так и обратное направление.Вы можете сделать это через Photoshop через панель «Анимация».В событии щелчка PictureBox вы можете настроить воспроизведение или остановку изображения.

Приведенный ниже код установит ваше изображение в начальный кадр.

imgButtonDimension = new FrameDimension(imgButtonDimension.FrameDimensionsList[0]);
imgButton.SelectActiveFrame(imgButtonDimension, 0);
pictureBox.Image = imgButton;`

Если вы используете такой подход,Я хотел бы предоставить дальнейшую разработку.

1 голос
/ 18 ноября 2011

Похоже, вы упомянули WinForms, поэтому я расскажу об этом. Да, анимация возможна, но в целом это будет немного работы.

Похоже, что реализация CodeProject реализована в универсальной инфраструктуре анимации (хотя и ограниченной). В комментариях schallos разместил лучшую реализацию кода отражения с использованием деревьев выражений.

Общий принцип:

  • Используйте PictureBox, чтобы получить двойную буферизацию
  • Использование таймера для управления перерисовкой (вызов Invalidate() на вашем PictureBox)
  • Возможно, вы захотите добавить немного замедления в анимацию, чтобы она выглядела более плавной; немного ускорения добавляется к нему, когда пользователь нажимает на кнопку.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...