Домой Windows Form Анимация Windows Form: Справочник по C#

Анимация Windows Form: Справочник по C#

1345
0


      Для создания анимации в Windows Form, в Microsoft Windows присутствует библиотека «user32.dll» с функцией AnimateWindow. Данная функция дает возможность производить специальные эффекты при показе или сокрытии окон. Имеются четыре типа мультипликации: ролик, слайд, свертывание или развертывание и плавное альфа-перетекание.

      User32.dll — реализует Windows User API. Позволяет работать со стандартными элементами пользовательского интерфейса Windows: рабочий стол, окна, меню и так далее. Позволяет реализовывать программам, графический пользовательский интерфейс Windows. Создавать и управлять окнами Windows, обрабатывать системные сообщения, команды с устройств ввода (клавиатуры, мыши и т.д.).

      Рассмотрим пример плавного проявления формы и сворачивания. Создайте проект Windows Form в Microsoft Visual Studio. В режима конструктора формы, сделайте двойной клик левой клавишей мыши, по ее любой части. Вы перейдете в автоматически созданный метод «Form1_Load». Добавьте в него приведенный ниже листинг.

AnimateWindow(this.Handle, 1000,
AnimateWindowFlags.AW_BLEND |
AnimateWindowFlags.AW_VER_POSITIVE);

      Перейдите обратно в конструктор формы и сделайте клик правой клавишей мыши по любой области формы. Из появившегося контекстного меню, выберете пункт свойства. В открывшейся вкладке «Свойства», в верхней части найдите значок с молнией – события формы. Найдите событие «Form1_FormClosing». Данное событие срабатывает при закрытии формы. Добавьте в данный метод приведенный ниже листинг.

AnimateWindow(this.Handle, 1000, AnimateWindowFlags.AW_BLEND | AnimateWindowFlags.AW_HIDE);

Добавим и рассмотрим структуру функции AnimateWindow.

[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool AnimateWindow(IntPtr hWnd, int time, AnimateWindowFlags flags);

Параметры данной функции:

  • hWnd – идентификатор окна (например, Form1.hwnd).
  • time – продолжительность эффект в миллисекундах. 1 секунда = 1000 миллисекунд.
  • flags — эффект.
ЧИТАТЬ ТАКЖЕ:  WindowsIdentity Impersonation: Справочник по C#

Параметр AnimateWindowFlags может иметь одно или комплекс следующих значений:

Параметр Значение описание
AW_ACTIVATE 0x00020000 Активирует окно. Нельзя использовать с AW_HIDE.
AW_BLEND 0x00080000 Применяет эффект Alpha-blended к окнам верхнего уровня.
AW_CENTER 0x00000010 Эффект – прямоугольник наружу, или внутрь, в зависимости от наличия значения AW_HIDE.
AW_HIDE 0x00010000 Скрывает окно. Если значение не указано, то окно будет появляться.
AW_HOR_NEGATIVE 0x00000002 Анимирует окно справа налево. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_HOR_POSITIVE 0x00000001 Анимирует окно слева направо. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_SLIDE 0x00040000 Эффект скольжения. Не работает при наличии значения AW_CENTER.
AW_VER_NEGATIVE 0x00000008 Анимирует окно снизу вверх. Этот флажок может быть использован с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.
AW_VER_POSITIVE 0x00000004 Анимирует окно сверху вниз. Этот флажок может быть использованы с роликом или слайдом мультипликации. Он игнорируется, когда используется с флажком AW_CENTER или AW_BLEND.

Добавьте в листинг главной формы комплекс значений AnimateWindowFlags и саму функцию.

[Flags]
enum AnimateWindowFlags
{
AW_HOR_POSITIVE = 0x00000001,
AW_HOR_NEGATIVE = 0x00000002,
AW_VER_POSITIVE = 0x00000004,
AW_VER_NEGATIVE = 0x00000008,
AW_CENTER = 0x00000010,
AW_HIDE = 0x00010000,
AW_ACTIVATE = 0x00020000,
AW_SLIDE = 0x00040000,
AW_BLEND = 0x00080000
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
static  extern bool AnimateWindow(IntPtr hWnd, int time, AnimateWindowFlags flags);

      Запустите ваш проект, нажав на клавиатуре клавишу «F5». При запуске вашего проекта вы увидите анимацию главной формы.

Анимация Windows Form: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь