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

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

Рекомендуем: Что делать, если залило свечи зажигания
eda2480d

Изменение свойств элемента управления со временем называется анимацией свойств. Отслеживание того, где свойства элемента управления, например, его положение при его перемещении, может быть сложным, особенно если вам нужно одновременно анимировать несколько объектов. В этом примере используется следующий класс 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 Scanner

Класс Java Scanner - это класс в пакете Java.util, который позволяет пользователю считывать значения различных типов. Это простой текстовый сканер, который...

21 06 2021 19:32:11

Как работает тернарный оператор на Python?

Тернарные операторы более широко известны как условные выражения в Python, которые оценивают что-то, основанное на истинном состоянии или нет. Он просто по...

20 06 2021 18:49:14

Перетаскивание текста в C#

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

19 06 2021 11:16:15

jQuery Mobile. Разработка приложений для смартфонов и планшетов (Максимилиано Фиртман)

Рассмотрено использование фреймворка jQuery Mobile для создания гибких мультиплатформенных приложений для различных мобильных устройств (iPad, Kindle Fire,...

18 06 2021 8:52:59

Переход на другую HTML страницу JavaScript

Вы можете перенаправить веб-страницу с помощью JavaScript, используя ряд методов. Если вам нужен скрипт переадресации JavaScript, совместимый с кросс-брауз...

17 06 2021 12:59:23

Инициализация элементов управления DataGridView с объектами в C#

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

16 06 2021 8:32:12

Создайте DataTable и привяжите его к DataGridView в C#

В этом примере показано, как можно построить DataTable и привязать его к элементу управления DataGridView. A DataTable представляет собой представление в р...

15 06 2021 11:30:47

Как добавить файл в Python?

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

14 06 2021 16:55:45

Что такое отказобезопасные и отказоустойчивые итераторы в Java

Неуправляемые итераторы Fail-Fast iterators, возвращенные большинством типов коллекций, не переносят каких-либо структурных изменений в коллекции, итерации...

13 06 2021 0:11:37

Разница между Path и Classpath в Java

путь является посредником между программистом и операционной системой, чтобы информировать двоичный путь файла, где, поскольку Classpath является посредник...

12 06 2021 12:55:54

Подтвердить форму в C#

Пример Использование события Validating в C# объясняет, как вы можете использовать обработчик событий Validating, чтобы проверить значение поля, когда фоку...

11 06 2021 7:11:41

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

В этом примере показан простой способ печати изображений. Когда вы печатаете, обработчик события PrintPocument PrintDocument предоставляет объект Graphics...

10 06 2021 2:26:34

Полный справочник по C++ (Герберт Шилдт)

Четвертое издание энциклопедического труда Г. Шилдта " Полный справочник по C++", в котором всесторонне рассматривается и иллюстрируется основная терминолог...

09 06 2021 7:53:29

If, else и Switch в C#

За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение ложно. Синтаксис : Если логическое выражени...

08 06 2021 8:48:20

Что такое package в Java?

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

07 06 2021 13:34:10

PHP 5 для начинающих (Дэйв У. Мерсер, Аллан Кент, Стивен Д. Новицки)

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

06 06 2021 7:50:18

Преобразование между корпусом Паскаля, верблюжьим футляром и правильным корпусом в C#

В этом примере используются методы расширения строк для преобразования строк между корпусом Pascal, верблюжьим футляром и правильным случаем. В случае Pasc...

05 06 2021 19:50:49

Что такое числовое продвижение? Java

Числовое продвижение, также известное как « Неявное преобразование» или «автоматическое преобразование Java», где автоматическое преобразование значения мен...

04 06 2021 6:14:33

Алгоритм Brute-Force в C#

В этой статье мы узнаем о реализации алгоритма в C# Brute-Force.Brute-force search или исчерпывающий поиск, также известный как генерация и тест,...

03 06 2021 15:29:51

Методы расширения прямоугольника в C#

В этом примере показано, как добавить методы расширения прямоугольника в структуры Rectangle и RectangleF. Структуры Rectangle и RectangleF имеют несколько...

02 06 2021 19:58:47

Разница между локальной переменной Java, переменной экземпляра и переменной класса?

Локальная переменная в Java обычно используется в методе, конструкторе или блоке и имеет только локальную область. Таким образом, вы можете использовать пе...

01 06 2021 1:36:31

Java Autoboxing и Unboxing

Autoboxing и Unboxing - это функции, включенные в Java 1.5, где автоматическое преобразование происходит от примитивного типа до соответствующего класса кл...

31 05 2021 9:58:14

Почему мне нужно переопределить методы equals и hashCode в Java?

В Java каждый объект имеет доступ к методу equals(), поскольку он наследуется от класса Object. Если два объекта равны в соответствии с методом equals (Obj...

30 05 2021 22:14:14

Программирование на Java

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

29 05 2021 20:58:14

PHP и MySQL. Исчерпывающее руководство (Бретт Маклафлин)

Если у вас есть опыт разработки сайтов с помощью CSS и Javascript, то эта книга переведет вас на новый уровень веб-разработки — создание динамических веб-с...

28 05 2021 9:38:36

DrawImage для преобразования изображений в C#

Примеры изображения Warp произвольно в C#, часть 1 и Изображения Warp произвольно в C#, часть 2 показать, как использовать обратные преобразования для дефо...

27 05 2021 13:28:23

Используйте ключевое слово params в C#

Если вы используете ключевое слово params перед параметром массива, используемым в качестве параметра last в методе, тогда вызывающий код может передавать...

26 05 2021 20:31:34

Разница между HashSet и HashMap в Java

Как следует из названий, HashMap является ассоциативной Map, а HashSet - это просто Set. Но они совершенно разные конструкции. HashMap - это реализация инт...

25 05 2021 20:32:32

Что такое перечисления Java и почему они полезны?

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

24 05 2021 22:59:15

Отображать данные master-detail в DataGrid в C#

Во время разработки я добавил проект Database.mdb в проект, установил его свойство «Build Action» в « Содержимое» и установил его свойство « Копировать в вых...

23 05 2021 21:52:52

Секреты профессиональной работы с «1С:Бухгалтерией 8». БАНК и КАССА (С. Харитонов , Д. Чистов)

В книге " Секреты профессиональной работы с «1 С: Бухгалтерией 8». Б А Н К и К А С С А" рассматривается порядок учета банковских и кассовых операций, расчетов с подо...

22 05 2021 5:36:15

Как ClassLoader работает на Java?

Java Classloader является частью JRE (Java Runtime Environment), которая динамически загружает классы Java в JVM (виртуальная машина Java). В частности, Ja...

21 05 2021 15:29:17

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

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

20 05 2021 21:25:53

Что такое JVM и является ли она независимой от платформы?

Java Virtual Machine (JVM) - это спецификация, предоставляющая среду выполнения, в которой может быть запущен Java-байт-код (файлы .class). JVM - платформа...

19 05 2021 11:40:39

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

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

18 05 2021 14:24:42

C++ для чайников (Стефан Рэнди Дэвис)

Научитесь программировать! Полное руководство по C++, с учетом стандартов C++ и C++ 14. Вы всегда хотели научиться программировать, но не знали, какой язык...

17 05 2021 8:35:16

1С-программирование как дважды два. Самоучитель (Михайлов Сергей)

Книга "1 С-программирование как дважды два. Самоучитель" основана на личном опыте предпринимательской деятельности автора в сфере 1 С-программирования. Начин...

16 05 2021 16:11:29

Получить использование памяти программы в C#

Код получает объект Process программы, а затем использует его свойства, чтобы узнать об использовании памяти. Источник: http://csharphelper.com/blog/2015/1...

15 05 2021 20:51:36

JavaScript. Справочник (Аллен Вайк)

Книга "Javascript. Справочник" представляет собой исключительно полный справочник по объектам, методам, атрибутам, высокоуровневым функциям языка написания...

14 05 2021 9:31:53

Функции в JavaScript

Функции - это «автономные» модули кода, которые выполняют определенную задачу. Он содержит инструкции, используемые для создания вывода с его ввода. Чтобы...

13 05 2021 3:39:46

Hello World! Первая программа на Java

Наиболее распространенным примером первой Java-программы является знаменитый Hello World! программа. Прежде чем перейти к первой программе Java, вы должны...

12 05 2021 2:51:33

Как создать документ Word в C#

В этом примере показано, как заставить C# создать документ Word. Сначала откройте диалоговое окно « Добавить ссылки». На вкладке COM выберите « Библиотека об...

11 05 2021 2:29:31

Разница между памятью Stack and Heap в Java

Модель Java Heap и Stack Memory определяет, как и когда разные потоки могут видеть значения, записанные в общие переменные другими потоками, и как синхрони...

10 05 2021 15:49:38

1С:Предприятие. Бухгалтерский учет. Секреты работы (Наталья Рязанцева)

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

09 05 2021 1:43:51

Разработка устройств на микроконтроллерах AVR: шагаем от чайника до профи (А. Белов)

Книга « Разработка устройств на микроконтроллерах AVR: шагаем от чайника до профи» Белова А. В. поможет Вам всего за шесть несложных шагов преодолеть путь от...

08 05 2021 0:54:37

Циклы в JavaScript (FOR, FOR-IN, While, do..while) с примерами

Looping - фундаментальная идея программирования, которая обычно используется при написании программ. Цикл представляет собой последовательность команд s, к...

07 05 2021 1:50:58

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

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

06 05 2021 17:12:56

Нарисуйте отмеченную круговую диаграмму в C#

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

05 05 2021 1:43:10

Класс Java StringBuilder

Java StringBuilder идентичен StringBuffer, за исключением одного важного различия, которое не синхронизировано, это означает, что он не является потокобезо...

04 05 2021 13:36:53

Сделать владельцем рисованные всплывающие подсказки с картинками в C#

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

03 05 2021 10:11:35

Еще:
Программирование -1 :: Программирование -2 :: Программирование -3 :: Программирование -4 :: Программирование -5 ::

И сказал Великий Программист:
«После трёх дней без программирования жизнь теряет смысл»