Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
5 / 5 / 0
Регистрация: 22.05.2012
Сообщений: 122

Затирается изображение в Panel, при изменении размеров формы

31.12.2015, 01:42. Показов 1447. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пользуясь данной: Получить часть изображения
темой решил создать что то подобное.
Я создал свой класс который принимает панель в качестве параметра конструктора, и рисует туда поле сразу:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// canvas  -  Panel        
public void Draw()
        {
            using (var gfs = canvas.CreateGraphics())
            {
                for (int i=0;i<field.GetLength(0);i++)
                    for (int j=0;j<field.GetLength(1);j++)
                    {
                        districtDraw.X = j * tileHeight;
                        districtDraw.Y = i * tileWidth;
                        if(field[i,j] == 11)
                            gfs.DrawImage(wall, districtDraw);
                    }
                    
            }
        }
Собственно поле оно рисует, но дальше при изменении размеров формы рисунок просто затирается...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.12.2015, 01:42
Ответы с готовыми решениями:

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

Изменение размеров элементов, сохраняя пропорции, при изменении размеров самой формы
Как изменять размеры элементов, сохраняя пропорции, при изменении размеров самой формы?

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

8
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
31.12.2015, 01:55
Цитата Сообщение от влад0 Посмотреть сообщение
Собственно поле оно рисует, но дальше при изменении размеров формы рисунок просто затирается...
Наверное если форму за пределы экрана затащить тоже затирается? Метод OnPaint вызывается и все стирает)))
Просто рисуйте в OnPaint и всё у вас получится.
0
5 / 5 / 0
Регистрация: 22.05.2012
Сообщений: 122
31.12.2015, 02:02  [ТС]
Где найти этот метод я пока не разобрался, но суть допустим понял.(Upd: разобрался)
Еще возник вопрос по вышеупомянутой теме. Как все таки взаимодействовать с отрисованными мною блоками, для например управления перемещения объектом, дабы исключить проходимость через стены?
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
31.12.2015, 02:27
Вот тут и стокновения и перемещения. Примитивно правда и физика не соблюдается но для понимания думаю пойдет.
Вложения
Тип файла: rar Tennis.rar (383.7 Кб, 4 просмотров)
1
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
31.12.2015, 02:27
A S - для перемещения
0
5 / 5 / 0
Регистрация: 22.05.2012
Сообщений: 122
31.12.2015, 02:44  [ТС]
Хорошо, но мне кажется перегружать метод onPaint для создания игры как то не очень выходит, ибо тогда игра начинает больно тормозить.Я планировал делать перерисовку с помощью таймеров, может есть еще какие то предложения по этому поводу?(Upd: Извиняюсь, не сразу заметил таймер в предложенном проекте, но все же из за чего такие тормоза тогда?)
Я сделал как вы предложили, но оно уж очень больно по глазам бьет когда изменяю размеры формы, из за торможения перерисовки...
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
31.12.2015, 03:32
включите у формы двойную буффиризацию что бы не мерцала.
Цитата Сообщение от влад0 Посмотреть сообщение
но мне кажется перегружать метод onPaint для создания игры как то не очень выходит, ибо тогда игра начинает больно тормозить.
- именно так и нужно! OnPaint! Кинте проек гляну.

Добавлено через 2 минуты
Игра блоки

Вот почитайте - тоже товарищ по началу говорил что у него все мерцает, а аказалось не совсем верно отрисовывал. Разобрались теперь работает нормально.
0
5 / 5 / 0
Регистрация: 22.05.2012
Сообщений: 122
31.12.2015, 03:38  [ТС]
Цитата Сообщение от Sanya_sa Посмотреть сообщение
Кинте проек гляну.
У меня еще проекта толком и нету, выводы делал из вашего проекта.
Цитата Сообщение от Sanya_sa Посмотреть сообщение
именно так и нужно! OnPaint!
Ну я тогда буду пробовать вот так, когда вообще соображу как делать это все. Впервые работаю с графикой...

Добавлено через 4 минуты
Цитата Сообщение от Sanya_sa Посмотреть сообщение
включите у формы двойную буффиризацию что бы не мерцала.
Что? Как? Что это вообще?

Еще. может быть у вас есть какой нибудь пример проекта игры по типу этой? Получить часть изображения
0
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
31.12.2015, 03:47
Цитата Сообщение от влад0 Посмотреть сообщение
Что? Как? Что это вообще?
https://msdn.microsoft.com/ru-... .110).aspx
В свойствах true выставите (ну или в конструкторе задайте DoubleBuffered = true).

Добавлено через 3 минуты
http://wm-help.net/lib/b/book/656723049/188
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2015, 03:47
Помогаю со студенческими работами здесь

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

Как растягивать фоновое изображение при изменении размеров JFrame ?
Добрый день! Фоновая картинка на фрейм выводится, но при изменении размеров фрейма она не растягивается. Понимаю, что куда-то нужно...

Центрировать кнопки при создании формы и при изменении размеров формы.
Спасайте) Центрировать кнопки при создании формы и при изменении размеров формы. Спасибо

При изменении размеров формы раздается щелчок, а сами размеры выводятся в заголовке формы
При изменении размеров формы раздается щелчок, а сами размеры выводятся в заголовке формы.

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru