![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
Загружая рисунок Image imageRis = new Bitmap("...");
в обработчике перирисовки панели вывожу его g.DrawImage(imageRis, 0, 0); В задаче нужно еще мышкой передвигать по панели различные графические обьекты (линии). При этом при каждом изменнеии кординат вызывается перирисовка.. при этом рисунок мигает. Как это устранить. Можно как нибудь не перирисовать фон под картинкой. Или это можно по другому сделать? |
|||
|
||||
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
поясню ... как выводя рисунок на панель не перерисовывать фон панели
|
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Чтобы изображение не мерцало при перерисовке, нужно выставить у контрола (в данном случае - у панели) стиль ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer. Пример с двигающимися линиями:
FlickerFreePanel.cs
Form1.cs
-------------------- ![]() |
||||
|
|||||
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
...... эээ ... а используя сам класс panel ... а не производный класс ... то можно сделать .... метод SetStyle является зашишенным...
Просто если бы при прорисовки картинки .. фон не заменялся сначала на фон панели, то мерцания просто уже не было .... |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Можно попробовать выставить BackColor с прозрачной компонентой = 255, хотя это тоже не везде прокатит (тогда тоже нужен специальный стиль). А что, сложно добавить в проект класс FlickerFreePanel и подменить имя класса у field-а в классе формы ? ![]() -------------------- ![]() |
|||
|
||||
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
нет не сложно .... обошел проблему влепив картинку в фон панели
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |