Путь разработчика    

Выполнить анимацию свойств Windows Forms в C#

Изменение свойств элемента управления со временем называется анимацией свойств. Отслеживание того, где свойства элемента управления, например, его положение при его перемещении, может быть сложным, особенно если вам нужно одновременно анимировать несколько объектов. В этом примере используется следующий класс ControlSprite, чтобы отслеживать элемент управления, когда он перемещается по прямой.

Python

Класс начинается с некоторых относительно простых деклараций. Единственная действительно интересная часть здесь - объявление события Done, которое класс поднимает, когда его управление закончило движение.

Конструктор класса принимает в качестве параметра элемент управления, который он будет перемещать.

Первая перегруженная версия метода Start перемещает вещи. Он сохраняет текущее и конечное местоположение элемента управления и вычисляет общее расстояние, на которое должен двигаться элемент управления. Затем он использует это расстояние и параметр pixels_per_second, чтобы определить, сколько он должен увеличивать координату X и Y элемента управления в секунду для достижения желаемого движения в пикселях в секунду. Метод Start вычисляет общий период времени, в течение которого будет выполняться движение, создает Timer для управления движением, а затем вызывает вторую перегруженную версию Start .

Вторая версия Start сохраняет текущее время в переменной LastMoveTime и включает Timer.

Метод Stop просто отключает таймер sprite

.

Когда Timer вызывает событие Tick, спрайт определяет, сколько времени прошло с момента последнего обновления позиции элемента управления и добавило истекшее время к общему прошедшему до сих пор. Если элемент управления движется достаточно долго, чтобы достичь цели, код отключает Timer, переводит элемент управления в его конечное положение и вызывает событие Done. Если элемент управления не двигался достаточно долго, чтобы достичь цели, код увеличивает координаты X и Y элемента управления.

В примерной программе используются два спрайта для анимации Button и Label одновременно.

Следующий код показывает, как программа готовит анимировать свои элементы управления.

Python

Этот код объявляет два объекта ControlSprite. Обработчик события Load инициализирует объекты и устанавливает обработчик событий Button Done (описанный в скором времени).

При нажатии кнопки выполняется следующий код.

Python

Этот код сначала определяет, будет ли в настоящее время кнопка Button запускать или останавливать. Если кнопка Button говорит «Пуск», код говорит «Стоп». Тогда, если X-позиция Button равна 12, код запускает оба спрайта, перемещая элементы управления в позиции (197, 229) и (12, 232). Если X-позиция Button равна 197, код запускает оба спрайта, перемещая элементы управления в позиции (12, 12) и (186, 12).

Если X-позиция Button не является ни 12, ни 197, код просто вызывает методы sprites Start, чтобы они продолжали предыдущий ход. (Таким образом, вы можете остановить и перезапустить движение, когда захотите.)

Если кнопка начинается с надписей Stop, то код просто вызывает методы sprites Stop.

В следующем коде показан обработчик события Button Done.

Python

Этот код просто сбрасывает текст Button для начала, чтобы вы могли перезапустить анимацию.

Источник: http://csharphelper.com/blog/2015/08/perform-windows-forms-property-animation-in-c/



Отзывы (через Facebook):

Оставить отзыв с помощью аккаунта FaceBook:

Зачем нужны общие типы в Java?

В Java 5 вводятся обобщения для включения типов (классов и интерфейсов) в качестве параметров при определении классов, интерфейсов и методов. Они реализова...

02 06 2020 21:35:33

Добавление метода расширения в класс Graphics в C#

По какой-то странной причине метод DrawRectangle класса Graphics не может принимать параметр RectangleF в качестве параметра. Он может принимать значения R...

01 06 2020 14:31:46

Отображение простого пароля перед запуском программы на C#

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

31 05 2020 5:28:43

Вектор в Java

Java-векторы обычно используются вместо массивов, поскольку они автоматически расширяются при добавлении новых данных. Это означает, что экземпляры Vector,...

30 05 2020 2:53:44

Отображение миниатюры для файлов изображений в каталоге в C#

В этом примере показано, как отображать миниатюры для изображений в каталоге. Он отображает всплывающую подсказку, когда мышь нависает над изображением и о...

29 05 2020 21:42:49

Модификаторы доступа в Java

Одним из основных принципов объектно-ориентированного программирования является «скрытие информации», что означает, что объекты не раскрывают все их детали...

28 05 2020 8:52:38

Нарисуйте масштабированное нормальное распределение в C#

Пример Нарисовать нормальную кривую распределения в C# показывает, как для нормального распределения. К сожалению, для некоторых средств и стандартных откл...

27 05 2020 23:18:53

Сделайте методы расширения subarray в C#

Метод Array класса Array класса может копировать подмассив из одного массива в другой, но для этого требуется выяснить, сколько элементов вы хотите скопиро...

26 05 2020 10:35:15

Отображение контекстного меню для элементов TreeView в C#

В этом примере отображаются различные контекстные меню при щелчке правой кнопкой мыши на разных типах узлов в элементе управления TreeView. В этом примере...

25 05 2020 14:31:57

Разница между String и StringBuffer / StringBuilder в Java

Здесь String неизменен, означает, что вы не можете изменить сам объект, но вы можете изменить ссылку на объект, тогда как StringBuffer и StringBuilder явля...

24 05 2020 8:32:42

Отображение точек между системами координат в C#

В этом примере показано, как можно легко сопоставить точки между различными системами координат. Объект Graphics предоставляет преобразования, которые позв...

23 05 2020 10:20:32

Сравнение производительность типов данных int, long и byte в C#

Пример Сравните производительность типов float, double и decimal в C# , сравнивает производительность float, double и decimal . В этом примере выполняется...

22 05 2020 15:40:39

Классификация языков программирования: кратко

Классификация языков программирования. Сейчас существует огромное количество самых разных языков программирования. По некоторым подсчетам, всего их более чем 120....

21 05 2020 12:56:50

Как преобразовать String в Date (строки в дату) в Java?

SimpleDateFormat позволяет начать с выбора любых пользовательских шаблонов для форматирования даты и времени. Класс Java.text.SimpleDateFormat используется...

20 05 2020 4:27:59

Нарисуйте прокладку Аполлония в C#

Пример Найти круги, которые касаются трех заданных кругов (проблема Аполлония) в C# , показывают, как найти до восьми кругов, которые касаются трех заданны...

19 05 2020 23:21:20

Использование обработчика событий для нескольких элементов управления в C#

Предположим, у вас есть несколько элементов управления с обработчиками событий, которые выполняют аналогичные сложные задачи. Существует два общих подхода...

18 05 2020 6:27:19

Обработка событий изменения значения NumericUpDown в C#

Сообщение Сделать NumericUpDown использовать десятичные значения в C# показывает, как вы можете сделать десятичные значения для элемента управления Numeric...

17 05 2020 16:52:55

C++. От ламера до программера. Включая C++11 (Эллайн Алекс)

Описание книги C++. От ламера до программера. Включая C++11: Эта книга предлагает быстрый способ изучить принципы объектно-ориентированного программирования...

16 05 2020 5:39:38

Многопользовательские игры. Разработка сетевых приложений (Глейзер Дж.)

Многопользовательские игры. Разработка сетевых приложений: Сетевые многопользовательские игры — это многомиллиардный бизнес, привлекающий десятки миллионов...

15 05 2020 8:19:30

Отображение значимых цифр в C#

Число значащих цифр в числе - это число цифр, которые содержат значимую информацию. К ним относятся все отображаемые цифры, кроме начальных и конечных нуле...

14 05 2020 2:35:20

Что такое компилятор Just-In-Time (JIT) в Java?

Компилятор Just-In-Time (JIT) является компонентом JRE (Java Runtime Environment), который повышает производительность приложений Java во время выполнения....

13 05 2020 3:49:58

Выбор языка программирования: 6 пунктов при выборе своего языка

Выбор языков программирования достаточно широк, но вы можете найти подходящий для вас и изучить его, если поразмыслите над следующими пунктами. 1. Определи...

12 05 2020 3:52:13

Сохранение цветовой палитры в настройках программы на C#

Пример Сделать постоянную цветовую палитру в C# показывает, как программа может использовать настройки для сохранения и восстановления цветовой палитры. Пр...

11 05 2020 16:37:31

Автоматически конвертировать регистр в TextBox в C#

Вы можете сделать это во время разработки, хотя в этом примере я устанавливаю свойства в следующем коде, чтобы их было легко увидеть. Источник: http://csha...

10 05 2020 0:52:39

Методы расширения в C#

C# поддерживает несколько способов расширения существующих типов без изменения существующего кода. Существует два разных способа: методы расширения и перео...

09 05 2020 13:28:37

Среда разработки Xcode

Xcode – IDE под Mac OS от Apple. Распространяется бесплатно через App Store. Благодаря свободному набору компиляторов данная среда разработки может работат...

08 05 2020 8:15:40

Статические переменные класса в Python

Статическая переменная - это переменная, которая была распределена статически, что означает, что ее время жизни - это весь запуск программы. Статические пе...

07 05 2020 8:59:16

Как найти кратчайшее расстояние между точкой и отрезком линии в C#

В этом примере рассматривается сегмент как параметризованный вектор, где параметр t изменяется от 0 до 1. Он находит значение t, которое минимизирует расст...

06 05 2020 7:14:54

Как сделать класс с определением и повышением событий в C#

В этом примере используется класс BankAccount для управления банковским счетом (и для определения способов и событий события). Если программа пытается удал...

05 05 2020 22:14:55

Рихтер Дж. CLR via C#: Программирование на платформе Microsoft .NET Framework 4.5 на языке C#

Эта книга, выходящая в четвертом издании и уже ставшая классическим учебником по программированию, подробно описывает внутреннее устройство и функционирова...

04 05 2020 17:31:30

Перемещение окна с названием, которое соответствует шаблону в C#

Пример Установите размер и положение другого приложения в C# использует функцию API FindWindow, чтобы найти окно с данным заголовком. К сожалению, FindWind...

03 05 2020 21:30:11

Список ярлыков в сетевом окружении компьютера в C#

В этом примере используется сценарий Windows Script Host для отображения ярлыков в сетевом окружении. Прежде чем программа сможет его использовать, вы долж...

02 05 2020 4:46:12

Плитка PictureBox в C#

Если вы устанавливаете свойство BackgroundImageLayout формы >, то элемент управления заполняется копиями его фонового изображения. Странно, что элемент упр...

01 05 2020 2:35:32

IF, ELIF, ELSE в Python

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

30 04 2020 7:24:43

Сортировка слов по количеству букв в C#

В этом примере сортируются слова по количеству букв. Он подсчитывает количество отдельных букв в списке слов и отображает слова и их подсчеты, отсортирован...

29 04 2020 22:48:38

Увеличьте и прокрутите изображение, нарисованное на C#

Эта программа позволяет масштабировать и прокручивать изображение, нарисованное программой. Программа содержит Panel с AutoScale, установленным в true. Вну...

28 04 2020 11:23:48

Класс FileReader в Java

FileReader - это характерно-ориентированный класс, который используется для обработки файлов в Java. Он предназначен для чтения потоков символов. Один симв...

27 04 2020 16:26:33

Преобразовать строку в число в Java? String to Int

Преобразование String в int или Integer - очень распространенная операция в Java. Существует несколько простых способов сделать это преобразование. Часто и...

26 04 2020 12:51:10

Рисуем гладкий текст в GraphicsPath в C#

Вы можете установить свойство TextRenderingHint объекта Graphics для AntiAliasGridFit, чтобы нарисовать гладкий текст. Однако, если вы поместите текст в об...

25 04 2020 12:49:18

Язык программирования Python (Д.С.Откидач)

Python является простым и, в то же время, мощным интерпретируемым объектно-ориентированным языком программирования. Он предоставляет структуры данных высок...

24 04 2020 10:57:46

Языки программирования для начинающих: с чего лучше начать?

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

23 04 2020 14:33:32

Разница между инструментами Runnable и extends Thread в Java

Java допускает только одно наследование, а это означает, что если вы наследуете Thread, вы не сможете наследовать ни один другой класс. Внедрение интерфейс...

22 04 2020 22:34:25

Отобразить диалоговые формы многократного использования в C#

Пример Сделать диалог со стандартным диалогом функции на C# показывают наиболее распространенный подход к созданию диалогов. Всякий раз, когда ему нужно от...

21 04 2020 21:41:31

Что такое фильтр ввода-вывода и как его использовать в Java?

Подобно потокам ввода-вывода, потоки фильтров также используются для управления чтением данных из базового потока. Фильтрация, выполняемая потоками, зависи...

20 04 2020 15:14:31

Добавить варианты ComboBox во время выполнения в C#

В этом примере вы можете добавить ComboBox варианты, когда пользователь выбирает их во время выполнения. Чтобы отслеживать выбор для будущего использования...

19 04 2020 0:46:37

Сделайте миниатюры и веб-страницу для отображения изображений в каталоге в C#

В этом примере выполняется поиск в каталоге и создание миниатюр для каждого из файлов изображений, которые он находит там. Он также создает веб-страницу, к...

18 04 2020 19:45:41

Сделайте карту крупным планом в C#

В этом примере карта крупным планом отображает увеличенную область под мышью, когда вы перемещаете ее по карте. Программа хранит увеличенную версию карты в...

17 04 2020 6:22:50

Многопользовательские игры. Разработка сетевых приложений (Глейзер Дж.)

Многопользовательские игры. Разработка сетевых приложений: Сетевые многопользовательские игры — это многомиллиардный бизнес, привлекающий десятки миллионов...

16 04 2020 15:45:34

Поворот изображений в C#

Эта программа использует следующий способ RotateBitmap для поворота изображения. Когда вы поворачиваете прямоугольник, результат может быть более широким и...

15 04 2020 13:27:53

Уникальные слова в файле Microsoft Word в C#

Этот пример является модификацией более раннего сообщения Перечислить уникальные слова в файле Microsoft Word на C# . Эта программа считывает слова в текст...

14 04 2020 16:54:36

Простой Python. Современный стиль программирования. (Билл Любанович)

Эта книга идеально подходит как для начинающих программистов, так и для тех, кто только собирается осваивать Python, но уже имеет опыт программирования на...

13 04 2020 15:22:47


Parse error: syntax error, unexpected ',' in /home/users/9/9161484547/domains/flash-mx.ru/lessons/926.php on line 69