Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 16.08.2017
Сообщений: 44
1

Как поменять размер нарисованной фигуры в PictureBox?

24.08.2017, 15:02. Показов 2043. Ответов 3

Как поменять размер нарисованной фигуры в picturebox на WinForms C#?
Есть рисовалка, в ней мы можем нарисовать фигуры, так вот как сделать что бы можно было нажать на край фигуры и растягивать и уменьшать ее?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.08.2017, 15:02
Ответы с готовыми решениями:

Изменить размер нарисованной фигуры
Я рисую фигуру произвольной формы. Необходимо увеличить или уменьшить её. (см. вложения, во 2...

Как повернуть и поменять размер PictureBox?
Идея такая, пользователь нажимает на кнопку, на форме появляется картинка, ее нужно по форме...

Как отследить координаты нарисованной фигуры?
У меня есть программа, создающая квадратики, и они летят вправо и вниз. Вопрос - как отслеживать их...

Как реализовать заливку нарисованной фигуры?
Пишу Paint на wpf. Возникла проблема - не знаю как реализовать заливку нарисованной фигуры. Помню в...

3
1139 / 731 / 483
Регистрация: 21.01.2014
Сообщений: 1,903
24.08.2017, 22:11 2
Цитата Сообщение от JuniorDp Посмотреть сообщение
Как поменять размер нарисованной фигуры в picturebox
Не рисовать в picturebox, он не для этого. Создайте свой контрол (или на худой конец возьмите panel), заведите где-нибудь список фигур, по событию клика по panel проверяйте не совпала ли координата клика с гранью фигуры (если совпала - меняйте размер, если нет - значит добавляйте новую фигуру). Ну и переопределяйте метод OnPaint контрола и отрисовывайте там все фигуры. Ну это мне так видится общий план работы, есть еще много нюансов.
0
0 / 0 / 0
Регистрация: 24.01.2017
Сообщений: 14
28.08.2017, 23:28 3
В свойствах picturebox'a "SizeMode- StretchImage", если я все правильно понял...
0
0 / 0 / 1
Регистрация: 03.07.2017
Сообщений: 18
03.09.2017, 20:59 4
Лучший ответ Сообщение было отмечено JuniorDp как решение

Решение

Если нужно просто увеличить изображение (тогда на PictureBox будет только его часть), то вот:
Pascal
1
2
3
4
5
6
7
8
9
10
// Вырезаем фрагмент Bitmap'a, который вам нужен
// Public только если в классе. (В C# все методы только в классе)
Public Function Copy(origin: System.Drawing.Bitmap; x, y, w, h: System.int32): System.Drawing.Bitmap;
Begin
Var region:=new System.Drawing.Bitmap(w, h);
Var g:=System.Drawing.Graphics.FromImage(region);
g.DrawImage(origin, 0, 0, w, h);
Result:=region;
g:=nil;
End;
А дальше всё стандартно:
Pascal
1
2
3
4
5
// Вызывая процедуру устанавливаем в бокс фрагмент изображения
Public Procedure SetImage(picbox: System.Windows.Forms.PictureBox; Img: System.Drawing.Bitmap; x, y, w, h: System.int32);
Begin
picbox.Image:=Copy(Img, x, y, w, h);
End;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2017, 20:59

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как выполнить заливку нарисованной фигуры?
Создана программа - графический редактор. Допустим нарисован овал, как выполнить его заливку? С# ...

Как сделать перемещение нарисованной фигуры по форме
Всем добрый вечер. Подскажите как сделать перемещение нарисованной фигуры по форме? Допустим...

Как сделать плавное перемещение нарисованной фигуры по форме?
Здравствуйте, у меня есть задача: Передвижение фигур. Вообщем выполняю её так: создаю стартовую...

Как можно поменять координаты нарисованной линии
Как можно поменять координаты линии, сделанной в классе Pen? И еще вопрос, как создать новую...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.