Создать анимацию на форме
Добрый день, знакомлюсь с графикой C# объясните пожалуйста ,приведите пример, знающие люди.
Пишу код для того ,чтобы сделать анимацию, но это все делаю непосредственно в Program.cs а не в одном классе Form1.
Приведите пример как в program.cs обращаться к методам и объектам формы и чтобы именно этот файл был исполняющим.
Вот еще пример кода.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
namespace Test { class Defender { public void DrawCircle(double x, double y, double R) { } } class Painter { public void Drawing(PictureBox Picture_Box, PaintEventArgs e) { //Pen pen = new Pen(Brushes.Red); //Graphics circle = e.Graphics; SolidBrush Brush = new SolidBrush(Color.Red); Graphics circle = Picture_Box.CreateGraphics(); System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(100, 100, 200, 200); circle.DrawEllipse(Pens.Black, rectangle); } } static class Program { static void Main() { Painter paint = new Painter(); paint.Drawing();//по сути надо передать 2 аргумента как в методе, поэтому возникает ошибка, как этот момент исправить? } } }
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Возможно ли рисовать анимацию в форме
Возможно ли рисовать анимацию в форме? Обязательно ли нужен net framework для написания программ.
Воспроизвести gif анимацию на форме
есть задача к дню победы сделать танк который по нажатиям на клавиши стрелки вправо, влево.
Как сделать анимацию перемещения текста по форме (игровой автомат)?
Программа игровой автомат. При выйгрышной комбинации в лэйбел добавляются очки. Всё отлично. Но.
Создать анимацию парашютиста
Необходимо создать анимацию падения парашютиста на землю и когда человек коснется земли он должен.
21 / 21 / 19
Регистрация: 22.03.2013
Сообщений: 115
на c++ можно было создавать все что нужно через winapi, здесь видимо тоже необходимо использовать winapi:
Draw on screen without form[stackoverflow]
911 / 815 / 333
Регистрация: 03.02.2015
Сообщений: 5,258
Записей в блоге: 9
Program.cs не трогайте. В форме переопределите OnPaint, и в нем рисуйте. Примеров на форуме полно.
Регистрация: 01.07.2013
Сообщений: 38
Я это и так и так знал, у меня непосредственно интерес, как это сделать вне класса формы?
Вот к примеру я захотел создать отдельный класс который должен отвечать за рисование.
![]()
![]()
10389 / 5120 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
Сообщение от llotall 
как это сделать вне класса формы?
Вот к примеру я захотел создать отдельный класс который должен отвечать за рисование.
Нельзя рисовать «вообще». Рисовать нужно на чем-то.
Если вы хотите сделать отдельный класс для рисования — сделайте, и передавайте в его методы класс Graphics и на нем рисуйте. А вызывающий класс (форма или контрол) будет уже передавать в ваш класс свой Graphics на котором нужно рисовать.
Регистрация: 01.07.2013
Сообщений: 38
Если вас это не затруднит, напишите какой-нибудь пример для демонстрации ваших слов
Добавлено через 3 минуты
Сообщение от Storm23 
Нельзя рисовать «вообще». Рисовать нужно на чем-то.
Я видимо вас не совсем понял,но ведь поверхность для рисования инициализирована
Сообщение от llotall 
Graphics circle = Picture_Box.CreateGraphics();
![]()
![]()
10389 / 5120 / 1824
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34

Сообщение было отмечено Памирыч как решение
Решение
Сообщение от llotall 
Я видимо вас не совсем понял,но ведь поверхность для рисования инициализирована
1) Не используйте CreateGraphics. Вообще.
2) У вас нет создания Picture_Box. Где он?
3) Но даже если вы создадите Picture_Box, все равно он не будет отрисовываться, потому что он не лежит на форме(окне). Windows рисует только в окнах. Она потому и называется Windows.
4) Но даже если вы создадите форму(окно), кинете туда пикчербокс, то все равно работать не будет. Потому что для того, что бы окно нормально работало, нужно создать очередь сообщений, через которые windows дает окнам команды (в т.ч. и на отрисовку).
5) Т.о. вам еще нужно создать очередь сообщений.
6) Так вот все что перечислено выше, студия делает за вас сама — просто нужно создать WinForm приложение, вместо консольного. Там будет и очередь сообщений, и главное окно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
using System; using System.Drawing; using System.Windows.Forms; namespace WindowsFormsApplication312 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { //созаем объект Drawer var drawer = new Drawer(); //вызываем у него метод Draw, передавая туда свой Graphics drawer.Draw(e.Graphics); } } /// /// Отрисовщик /// public class Drawer { public void Draw(Graphics gr) { for (int i = 0; i 10; i++) gr.FillRectangle(Brushes.Red, i*10, i*10, 10, 10); } } }
Класс Drawer реализует отрисовку независимо от формы. Вы можете его использовать в форме, а можете использовать для отрисовки на произвольном контроле. А можете вообще вынести в отдельный проект (длл).
Простая анимация в C#
В данном уроке используется среда программирования Microsoft Visual studio 2012. Алгоритм работы аналогичен и для других сред программирования.
Перед тем, как приступить к данному уроку, следует ознакомиться с предыдущим уроком : Как начать работать с графикой в Microsoft C#

Сначала создаем свой проект, в котором и будем работать. Разместим на форме (Form1) объекты : PictureBox, Timer и Button следующим образом:
Теперь попробуем создать какую-нибудь примитивную анимацию, при помощи PictureBox и Timer, которая запустится после нажатия на кнопку (Button).
Следовательно для этого будем обрабатывать событие нажатия на кнопку и событие «срабатывания» таймера. Также заведем все нужные для рисования объекты и переменные.
Далее приведен код программы и скриншоты, которые содержат все необходимое пояснение реализации анимации.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Lesson_Animation { public partial class Form1 : Form { Graphics gr; //объявляем объект - графику, на которой будем рисовать Pen p; //объявляем объект - карандаш, которым будем рисовать контур SolidBrush fon; //объявляем объект - заливки, для заливки соответственно фона SolidBrush fig; //и внутренности рисуемой фигуры int rad; // переменная для хранения радиуса рисуемых кругов Random rand; // объект, для получения случайных чисел public Form1() { InitializeComponent(); } //опишем функцию, которая будет рисовать круг по координатам его центра void DrawCircle(int x, int y) { int xc, yc; xc = x - rad; yc = y - rad; gr.FillEllipse(fig, xc, yc, rad, rad); gr.DrawEllipse(p, xc, yc, rad, rad); } // для перехода к данной функции сделайте двойной щелчок по кнопке (Button) // добавленной на форму. См. на фото, после кода private void button1_Click(object sender, EventArgs e) { gr = pictureBox1.CreateGraphics(); //инициализируем объект типа графики // привязав к PictureBox p = new Pen(Color.Lime); // задали цвет для карандаша fon = new SolidBrush(Color.Black); // и для заливки fig = new SolidBrush(Color.Purple); rad = 40; //задали радиус для круга rand = new Random(); //инициализируем объект для рандомных числе gr.FillRectangle(fon, 0, 0, pictureBox1.Width, pictureBox1.Height); // закрасим черным // нашу область рисования // вызываем написанную нами функцию, для прорисовки круга // случайным образом выбрав перед этим координаты центра int x, y; for (int i = 0; i 15; i++) { x = rand.Next(pictureBox1.Width); y = rand.Next(pictureBox1.Height); DrawCircle(x, y); } timer1.Enabled = true; //включим в работу наш таймер, // то есть теперь будет происходить событие Tick и его будет обрабатывать функция On_Tick (по умолчанию) } // для получения данной функции перейдите к конструктору формы // и сделайте двойной щелчок по таймеру, добавленному на форму. См. на фото после кода private void timer1_Tick(object sender, EventArgs e) { //сначала будем очищать область рисования цветом фона gr.FillRectangle(fon, 0, 0, pictureBox1.Width, pictureBox1.Height); // затем опять случайным образом выбираем координаты центров кругов // и рисуем их при помощи описанной нами функции int x, y; for (int i = 0; i 15; i++) { x = rand.Next(pictureBox1.Width); y = rand.Next(pictureBox1.Height); DrawCircle(x, y); } } } }

После этого, можно запустить программу и после нажатия на кнопку увидите простую анимацию – случайное перемещение кругов по черному фону, как показано ниже:

Для того, чтобы анимация соответствовала требованиям иногда необходимо менять так называемый тик таймера, т.е. промежуток выполнения очередного шага анимации. Это выполняется в Инспекторе объектов. Нужно выбрать элемент Timer, нажать на кнопку Свойства и там выбрать и изменить параметр Interval (выражается в миллисекундах) В данном примере Interval равен 150 мс.
Ниже прикреплен архив данного проекта.
| Прикрепленный файл | Размер |
|---|---|
| Skopinskiy_LessonAnimation.zip | 54.79 кб |
Плавная анимация WinForms / C#
День добрый. Подскажите, как на WinForms сделать плавную анимацию, желательно с управлением ее скорости. Код, который я использую для анимации:
animBW.DoWork += delegate(object sender, DoWorkEventArgs e) < while (true) < int width = panel1.Width; //Random r = new Random(); if (width < this.Width) < int newwidth = width++; setWidth(newwidth); Thread.Sleep(1); >else < break; >> >;
Но при Thread.Sleep(1) анимация слишком медленная, да и зависит от размера объекта. (больше объект => больше ждать, это понятно) При отсутствии паузы анимация вовсе не видна. Подскажите, как сделать анимацию независимой от размера блока и более быстрой?
Отслеживать
user177221
задан 10 июн 2015 в 15:19
403 1 1 золотой знак 4 4 серебряных знака 13 13 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Я советую использовать класс System.Windows.Forms.Timer для таких целей. Создайте таймер, задайте интервал в миллисекундах через который будет генерироваться событие Tick . Событию присвойте обработчик, в котором накапливайте число шагов (например в статическую переменную). Если оно превысило нужное вам, то останавливайте таймер. Пример кода вам в помощь.
private void mainForm_Click(object sender, EventArgs e) < Timer timer = new Timer(); timer.Interval = 30; // каждые 30 миллисекунд int count = 0; int max = 10; Graphics g = this.CreateGraphics(); g.Clear(Color.White); int x = 10; int y = 10; g.DrawEllipse(Pens.Black, x, y, 10, 10); timer.Tick += new EventHandler((o, ev) => < x += 5; y += 5; g.Clear(Color.White); g.DrawEllipse(Pens.Black, x, y, 10, 10); count++; if (count == max) < Timer t = o as Timer; // можно тут просто воспользоваться timer t.Stop(); >>); timer.Start(); // запустили, а остановится он сам >
Этот код по клику двигает кружок на пустой форме. Если вы хотите, например, всегда за 1 секунду рисовать анимацию, то соответсвенно берите всегда интервал, скажем, 10 миллисекунд и 100 шагов, а параметры изображения меняйте на 1/100 от общего изменения (разность между началом и концом анимации) за каждый шаг. Можно еще снижать частоту перерисовки для маленьких объектов, но это уже на ваше усмотрение.
Анимация для Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Основы анимации
Рекомендации по анимации в Visual Studio
Следуйте этим правилам, чтобы обеспечить согласованные и понятные стили анимации в интегрированной среде разработки Visual Studio.
- Будьте выборочными. Ограничить анимацию теми, которые служат конкретным целям.
- Время и скорость важны , чтобы переходы чувствовали себя быстро и естественно:
- Завершение анимированных переходов в течение одной половины секунды (500 миллисекунд).
- Анимации, которые часто происходят, должны быть достаточно быстрыми, чтобы они не прерывали рабочий процесс пользователя. Следите за анимацией в цикле и настраивайте время, пока оно не будет правильно.
- Анимации не должны быть настолько быстрыми или резкими, что трудно понять, но не так медленно, что это делает один нетерпеливый для перехода к завершению.
- Используйте время переменной, чтобы подчеркнуть важность. Например, при переходе по последовательности элементов на схеме классов скорость перехода между элементами затем замедляется, чтобы сосредоточиться на важных элементах.
- Остановите отображение движения хода выполнения, когда базовый процесс не продвигается.
- Различает детерминированные процессы от детерминированных процессов.
- Убедитесь, что анимация имеет идентифицируемые состояния завершения и сбоя.
- Свести к минимуму использование анимаций эффектов, которые показывают состояние и убедитесь, что они имеют реальное значение, предоставляя дополнительную информацию о фактическом использовании. Примеры включают временные изменения состояния и чрезвычайные ситуации
Анимация не поддерживается:
- Не используйте небольшие движения (движение в небольшом следе). Предпочитайте отцветать и изменяться при перемещении объектов.
- Не используйте анимации, которые происходят над большой площадью экранной недвижимости. Независимо от размера, этот стиль анимации отвлекает пользователя.
- Не используйте анимацию, не связанную с объектом, с которым пользователь в настоящее время сосредоточен или взаимодействует.
- Не используйте анимацию, требующую взаимодействия с пользователем для сброса состояния, например принудительного реагирования пользователя на мигающее уведомление, чтобы он перестал мигать. Взаимодействие с ними каким-либо образом должно быть достаточно, чтобы закрыть их.
Дополнительные сведения о приложениях для этих рекомендаций см . в шаблонах анимации.
Метрики анимации
- Система должна заметно реагировать на жесты пользователя менее чем в 10 миллисекундах.
- Анимированные переходы не должны занять больше 500 миллисекунда.
- Один из способов компенсировать переходы, требующие больше времени, — разделить его на две части. Например, первая часть анимации может быть пустым контейнером содержимого (до 500 миллисекундах), а затем содержимое исчезает в контейнере (до 500 миллисекундах).
- Для времени загрузки, который можно вычислить, предпочтительнее индикатор хода выполнения детерминированного выполнения (индикатор хода выполнения процента).
- Для времени загрузки, который не может быть вычисляться, соответствующий индикатор занятой нагрузки, например курсор или внедренная анимация спиннинга (загрузка или рабочий индикатор).
Анимация как коммуникатор
В пользовательском интерфейсе Visual Studio анимация работает только в качестве средства обмена данными. Он используется для обмена различными сведениями, такими как структурные изменения в пользовательском интерфейсе (например, при открытии или закрытии меню). Анимация может помочь визуализировать поведение сложных систем, таких как визуализация хода установки. Анимации также можно использовать для привлечения внимания с оповещениями и уведомлениями.
Анимации пользовательского интерфейса обычно работают четырьмя способами: визуализация, привлечение внимания, имитация и индикаторы времени отклика.
Визуализировать
Анимация может подчеркнуть трехмерный характер объектов и упростить визуализацию пространственной структуры пользователями. Чтобы добиться этого, анимация может потребоваться развернуть объект в полном круге, медленно повернуть его назад и вперед, или приблизить объект и немного увеличить его размер, чтобы подчеркнуть откат или фокус.
Хотя трехмерные объекты могут быть перемещены с помощью пользовательского элемента управления, конструктор должен заранее определить (программно или вручную), как лучше всего анимировать движение, которое обеспечивает оптимальное понимание объекта. Затем эта запрограммированная анимация может быть активирована пользователем путем размещения курсора над объектом, в то время как управляемые пользователем движения требуют, чтобы пользователь понимал, как управлять объектом. Ограничение перемещения на одну ось или ориентацию за раз; либо масштабировать, поворачивать или переводить, но не выполнять несколько одновременно.
Категория визуализации включает аспекты данных, связей, состояния, структуры, последовательности и времени.
Data
Проиллюстрировать сложные и переменные сведения:
- Перемещение по информационным визуализациям, таким как диаграммы и графы
- Пошаговое выполнение последовательности, интерактивного тура и разбиения по страницам
- Вызов сведений, указание и выделение конкретных сведений
- Наложение сведений и дополнительных сведений поверх фокусного элемента
- Преобразование из одного структурного или организационного представления в другое
- Представление изменений с течением времени с помощью ползунок времени, бег и шаттл колеса, а также управления транспортом (воспроизведение, остановка и пауза)
Связи
- Иллюстрирует связь элементов друг с другом или с элементами, связанными с заданным элементом
- Отображение иерархий и отношений с родительским или дочерним или одноуровневой связью
- Один элемент создает другой
- Один элемент сворачивать к другому элементу
- Один элемент, привязанный к другому
State
- Обновления содержимого
- Фокус пользователя и выбор
- Ход выполнения
- ошибки
Структура
- Сводка структуры на одном узле
- Переориентации
- Свернуть и развернуть и свернуть
Sequence
- Последовательность слайд-шоу
- Пролистывание рисунков
Time
- Отображение изменений с течением времени, интервалов времени и экранной рассылки
- Переход к корзине, отмене и повторному повтору
- Восстановление исторического состояния
Привлечь внимание
Если цель заключается в том, чтобы привлечь внимание пользователя к одному элементу из нескольких или предупредить пользователя об обновлении информации, то анимация может быть подходящей. Например, начальная страница приложения может использовать кнопку «Начало работы», которая слайдирует на месте после загрузки страницы.
Как правило, последний перемещаемый элемент на экране привлекает внимание пользователя. В серии анимированных элементов внимание пользователя будет следовать последнему движущемуся объекту.
Предупреждение
- Оповещение пользователя, получение внимания, отображение хода выполнения
- Показать, что что-то выполняется правильно или неправильно или отображает ход выполнения или изменения хода выполнения
- Запрос пользователей во время задачи, например поиск дополнительных сведений в Интернете или изучение текущей задачи
Уведомления
- Оповещение пользователя об условии ошибки
- Прервать пользователя, чтобы узнать, хотите ли они присутствовать на чем-то другом
- Нежно сообщите пользователю, что процесс завершился или изменился, например, когда скачивание завершено.
Моделирование
Эта категория охватывает физическость и размерность.
- Иллюстрировать, откуда приходят объекты или откуда они отправляются
- Развернуть и свернуть или закрыть и закрыть
- Сдвиг, прокрутка и поворот страницы
- Стек и упорядочение z
- Карусель и аккордеон
- Перевернутый и поворот пользовательского интерфейса
Индикаторы реагирования и хода выполнения
Индикаторы хода выполнения имеют несколько заметных преимуществ:
- Как детерминированные, так и недетерминированные индикаторы хода выполнения переоценят пользователя, что система не сбой и работает над проблемой.
- Детерминированные индикаторы дают пользователю чувство того, насколько далеко вдоль действия выполняется, а также чувство приближения к финишу.
Шаблоны анимации
Анимации в Visual Studio предназначены для обслуживания определенной функции, не препятствуя повышению производительности пользователей. Как правило, анимации в Visual Studio должны быть следующими:
- Небольшие и ненавязчивые
- Естественный и реалистичный
- Тонкие и подчиненные
- Быстрая и эффективная
- Расслабленный, не поспешил
На этом рисунке показаны стили анимации, которые мы рекомендуем для Visual Studio. Анимация или тонкие анимации, такие как увядающее или исчезание, не используются чаще всего. Существует ограниченное применение анимаций перемещения, таких как расширение и контракт, изменение положения X и Y, а также поворот.

Рекомендуемые стили анимации для Visual Studio
Отображаться и исчезать
С помощью этого шаблона элемент переключается с видимого на вне представления и обратно без анимации перехода.

Отображается и исчезает анимация
Правильное использование
Свежие элементы пользовательского интерфейса, которые должны мгновенно отображаться или исчезать, чтобы пользователь не отвлекал и не препятствовал. Кроме того, анимации медленного перемещения могут рассматриваться как перетаскивание производительности, которое не будет происходить с стилем отображения и исчезновения.
Неправильное использование
В случаях, когда пользовательский интерфейс отображается так резко, пользователь не имеет понятия о том, что произошло, и добавление анимации поможет с контекстным пониманием.
Свойства анимации
Задержка времени обычно равна нулю секундам.
Примеры
- Окна средств автоматического скрытия
- Пользовательский интерфейс редактора с активацией клавиатуры, например IntelliSense и справка по параметрам
- Области кода развертывания и свертывание
Fade-in и fade-out
В этом шаблоне элемент пользовательского интерфейса переходит от невидимого (0 % непрозрачности) к видимой (100 % непрозрачности) или наоборот.

Анимация fade-in и fade-out
Правильное использование
Это наиболее часто рекомендуемая анимация пользовательского интерфейса. Это тонкий эффект, который добавляет интерес без прерывания потока. В некоторых случаях пользователь может даже не понимать, что есть анимация, воспринимая гладкую и потоковую систему пользовательского интерфейса.
Свойства анимации
- Начиная с непрозрачности: 0 % для исчезания, 100 % для выхода
- Окончание непрозрачности: 100% для исчезания, 0 % для отвыкание
- Длительность: 200 миллисекунда автономных, 100 миллисекундах при использовании в рамках последовательности анимации комбинации
- Стиль упрощения: Sine InOut
Примеры
- Окна средств автоматического скрытия
- Открытие и закрытие меню
- Переходы на вкладку фона и переднего плана
Сочетание цветов от A до B
С помощью этого шаблона элемент пользовательского интерфейса изменяется с цвета A на цвет B.

Анимация смешения цветов
Правильное использование
При анимированном переходе, когда элемент пользовательского интерфейса изменяет цвет из одного контекста или состояния в другое.
Свойства анимации
- Начальный цвет: пользовательский интерфейс
- Конечный цвет: пользовательский интерфейс
- Длительность: 200 миллисекунда автономных, 100 миллисекундах при использовании в рамках последовательности анимации комбинации
- Стиль упрощения: Sine InOut
Примеры
- Переходы состояния окна документа (активные, последние активные и неактивные)
- Переходы состояния окна инструментов (фокусированные и нефокусированные)
Развертывание и контракт
С помощью этого шаблона элемент пользовательского интерфейса расширяется в направлениях X, Y или в обоих направлениях.

Развертывание и анимация контракта
Правильное использование
При анимированном переходе при изменении размера элемента пользовательского интерфейса из одного контекста в другой.
Свойства анимации
- Шкала X: % или конкретное измерение (в пикселях)
- Шкала Y: % или конкретное измерение (в пикселях)
- Позиция привязки: обычно в левом верхнем углу (для языков слева направо) или в правом верхнем углу (для языков справа налево)
- Длительность: 200 миллисекунда автономных, 100 миллисекундах при использовании в рамках последовательности анимации комбинации
Примеры
- Развертывание и свертывание панели архитектуры Обозреватель
- Элемент начальной страницы Visual Studio 2017 разверните и свернуть
Изменение положения X-Y
С помощью этого шаблона элемент пользовательского интерфейса изменяет положение X или Y или оба.

Анимация изменения положения X-Y
Правильное использование
При анимированном переходе, когда элемент пользовательского интерфейса изменяет положение из одного контекста в другой.
Свойства анимации
- Запуск позиции X и Y: зависят от пользовательского интерфейса
- Окончание позиции X и Y: зависят от пользовательского интерфейса
- Путь движения: нет
- Длительность: 200 миллисекунда автономных, 100 миллисекундах при использовании в рамках последовательности анимации комбинации
- Стиль упрощения: Sine InOut
Пример
Изменение порядка вкладок
Поворот
С помощью этого шаблона элемент пользовательского интерфейса поворачивается.

Анимация поворота элемента пользовательского интерфейса
Правильное использование
Только для неопределенного индикатора хода выполнения спиннинга.
Свойства анимации
- Степень поворота: 360
- Центр поворота: середина объекта
- Длительность: непрерывная
Пример
Неопределенный индикатор хода выполнения (спиннинг)
Общие действия пользовательского интерфейса оболочки и рекомендуемые анимации
Открытие вкладки

Анимация открытия вкладки
- Стиль: отображается
- Длительность: ноль секунд
Закрытие вкладки

Анимация закрытия вкладки
- Стиль: изменение положения X
- Длительность: 200 миллисекунда
Изменение порядка вкладок

Анимация переупорядочения вкладок
- Стиль: изменение положения X
- Длительность: 200 миллисекунда
Закрытие плавающего документа

Закрытие анимации с плавающей запятой
- Стиль: отображается
- Длительность: 200 миллисекунда
Переход состояния окна

Анимация перехода состояния окна
- Стиль: чтобы соответствовать другим окнам, позвольте текущей операционной системе определить анимацию закрытия документа.
- Длительность: 200 миллисекунда
Открыть меню

Анимация открытия меню
- Стиль: fade-in
- Длительность: 200 миллисекунда
Закрыть меню

Анимация закрытия меню
- Стиль: угасание
- Длительность: 200 миллисекунда
Окно средства автоматического скрытия

Автоматическое скрытие анимации отображения окна инструментов
- Стиль: отображается
- Длительность: ноль секунд
