Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
1 / 1 / 1
Регистрация: 28.03.2012
Сообщений: 25

Графика в Windows forms - как избежать мерцания при анимации

09.04.2014, 21:40. Показов 3866. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо создать несложную движения анимацию в Windows Forms. Как сделать это наиболее эффективно, чтобы не возникало эффекта "мелькания" изображения. Пока что знаю 2 способа рисования: используя DrawImage в классе Graphics (отрисовывая всю форму заново немного меняя расположение объекта) , и с помощью PictureBox изменяя его расположение. Нужны какие-нибудь советы, что именно использовать и как лучше использовать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2014, 21:40
Ответы с готовыми решениями:

Графика Windows Forms. Способы построения графиков функций и анимации
Visual C++. Работаю, разумеется, в Студии. Какие есть способы построения графиков функций на форме? И как работать с анимацией. Допустим,...

Как избежать мерцания при перерисовке Panel
Необходимо чтобы после того, как загнал все точки в список (List), их отрисовало на panel. Причем так, чтобы "не моргала" панель....

Как избежать мерцания при перетаскивании формы
Пользуясь случаем Вы не подскажите как избедать мерцания при перетаскивании формы своими силами??? Блин, я помню, что когда то решал эту...

6
 Аватар для Lovk4ch
6 / 6 / 5
Регистрация: 28.03.2014
Сообщений: 26
10.04.2014, 00:31
По недавнему предложенному способу пользуюсь таким методом:
C#
1
2
3
4
5
6
PaintEventHandler paint = null;
paint = (s, a) =>
{
    a.Graphics.DrawImage(image, x, y, width, height);
    this.Paint -= paint;
};
На каждом шаге движения вызывается перерисовка:
C#
1
2
this.Paint += paint;
this.Invalidate(new Rectangle(x, y, width, height));
Может кто предложит лучший вариант.
1
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
10.04.2014, 04:01
Все зависит от того, что нужно анимировать
0
 Аватар для Spectral-Owl
608 / 583 / 157
Регистрация: 29.06.2010
Сообщений: 1,620
10.04.2014, 10:21
как вариант - рисовать не в WinForms, где графика обрабатывается процессором, а, если уж стоит такая задача, перейти на WPF. В коде изменения будут не критичные.
0
1 / 1 / 0
Регистрация: 08.02.2013
Сообщений: 47
11.04.2014, 12:40
Уменьшить мерцание поможет выставление значения DoubleBuffered = true; формы на которой рисуете. Но полностью это мерцание не уберет.
1
1 / 1 / 1
Регистрация: 28.03.2012
Сообщений: 25
12.04.2014, 09:45  [ТС]
Цитата Сообщение от ViterAlex Посмотреть сообщение
Все зависит от того, что нужно анимировать
Анимировать нужно просто перемещение объекта, т.е. изменение положение объекта на форме.

Цитата Сообщение от Spectral-Owl Посмотреть сообщение
как вариант - рисовать не в WinForms, где графика обрабатывается процессором, а, если уж стоит такая задача, перейти на WPF.
Такое задание дали в универе, поэтому излишне усложнять не хочется.
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
13.04.2014, 01:58
Цитата Сообщение от Кирилл Посмотреть сообщение
Анимировать нужно просто перемещение объекта
Какого именно объекта? Если этот объект достаточно легко реализовать рисованием, то можно использовать GraphicsPath, если сложно - то Bitmap
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2014, 01:58
Помогаю со студенческими работами здесь

Мерцания при анимации
Как убрать мерцания при анимации движение объекта курсорными стрелками?

Устранение эффекта мерцания при анимации
Здравствуйте! Разбираюсь с анимацией в Lazarus. Сделал простенький пример (прикреплён) - движение объекта по неоднородному фону, но он мне...

Как избежать мерцания картинок (картинки-кнопки)?
У меня есть форма, на которой 2 картинки. Первая картинка с изображением обычной кнопки. Вторая картинка - изображение активной...

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

Если ли библиотеки анимации для Windows Forms
Здравствуйте форумчане. 1) если ли в с# библиотеки по аминированию в поле Form его объектов (текстовых полей, кнопок и т.д.) 2) пока я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru