|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.03.2015, 11:22 | #1 |
Новичок
Джуниор
Регистрация: 15.03.2015
Сообщений: 9
|
Пропорциональное увеличение рисунка в форме
Панель привязана к форме нужно чтобы при увеличении формы рисунок пропорционально увеличивался
Код:
не забывайте форматировать код тегами! Модератор Последний раз редактировалось Denis_Mishin; 17.03.2015 в 11:30. |
17.03.2015, 11:48 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну дык и используйте не жестко заданые размеры, а в зависимости от размера панели и т.п. (и перерисовывать видимо надо в соответствующем событии, а не 1 раз по клику)
В чем конкретно проблема? Что пробовали?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
17.03.2015, 12:04 | #3 |
Новичок
Джуниор
Регистрация: 15.03.2015
Сообщений: 9
|
|
17.03.2015, 12:17 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Так написал как, считайте координаты в зависимости от размера панели.
И скорее всего перерисовывать надо в каком-нибудь событии типа SizeChanged, чтобы изменялось сразу при изменении размера. Если вы сами ничего не делаете для решения свой проблемы, а только выложили на форум и ждете решения, то маловероятно, что вам кто-то поможет бесплатно. Выкладывайте попытки, задавайте конкретные вопросы.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
17.03.2015, 12:32 | #5 | |
Новичок
Джуниор
Регистрация: 15.03.2015
Сообщений: 9
|
Цитата:
private void button1_Click(object sender, EventArgs e) { const int x = 200, y = 200; int dx, dy; dx = (this.panel1.Width) / x; dy = (this.panel1.Height) / y; Graphics gPanel = panel1.CreateGraphics(); Pen p = new Pen(Color.Black, 1); gPanel.DrawLine(p, new Point(55*dx, 30*dy), new Point(35*dx, 20*dy)); gPanel.DrawLine(p, new Point(35*dx, 20*dy), new Point(65*dx, 55*dy)); gPanel.DrawLine(p, new Point(65*dx, 55*dy), new Point(75*dx, 45*dy)); gPanel.DrawLine(p, new Point(75*dx, 45*dy), new Point(90*dx, 65*dy)); gPanel.DrawLine(p, new Point(90*dx, 65*dy), new Point(105*dx, 40*dy)); } private void panel1_Paint(object sender, PaintEventArgs e) { panel1.Dock = DockStyle.Fill; } |
|
17.03.2015, 13:09 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
В Paint не нужно Dock изменять, достаточно 1 раз в самом начале (при запуске программы, так что, например, просто в дизайнере формы можете это выставить).
В Paint скорее само рисование поместить нужно, а то у вас сейчас рисунок пропадет, например, если свернуть/развернуть форму. И перед рисованием еще убирать предыдущее нарисованое надо, например, так: Код:
Я не очень понял что вы там рисуете, вот пример какой-нибудь простой фигуры: Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
17.03.2015, 13:41 | #7 | |
Новичок
Джуниор
Регистрация: 15.03.2015
Сообщений: 9
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движения рисунка по форме | Drake07 | C# (си шарп) | 4 | 01.12.2013 19:30 |
Пропорциональное изменение масштаба автофигуры | Denis0n | Microsoft Office Excel | 1 | 23.12.2012 12:28 |
пропорциональное изменение элементов формы | vladis222 | Общие вопросы Delphi | 2 | 20.07.2012 11:49 |
Увеличение ширины Image без растягивания рисунка | artemavd | Общие вопросы Delphi | 20 | 28.01.2011 17:40 |
Пропорциональное увеличение | Роман Радер | Мультимедиа в Delphi | 1 | 02.04.2007 12:22 |