Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
266 / 217 / 54
Регистрация: 01.08.2016
Сообщений: 836

Вписывание текста в нарисованный прямоугольник

30.12.2019, 11:37. Показов 1442. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поздравляю всех с наступающими праздниками. На просторах нашего форума нашел тему с контролом PaintPanel. Классная штука. Сейчас использую для своих целей. Прорисовка линий и всего остального происходит в миллиметрах. В определенных прямоугольных областях образованными прересечением линий необходимо вписать текст. Высота текста тоже должна быть в миллиметрах. Текст для вставки в эти области получается из ячейки дгв. Он может быть разной длины. Удаление каких либо символов из текста не допускается. Сжатие текста до той степени чтобы он вписывался в прямоугольную область не допускается так как текст на рисунке должен быть одного формата (высота, тип шрифта, степень сжатия и наклон.). Это есть в AutoCade такая фишка как мультистрочный текст который вписывается в определенную область заданную пользователем. И еще как задавать прорисовку текста в миллиметрах В свойствах PaintPanel я указал что текст должен рисоваться в миллиметрах но почемуто рисуется в пикселах. прорисовка текста происходит так:
VB.NET
1
 pea.Graphics.DrawString("Данные питающей сети", New Font("Cambria", 8.5, FontStyle.Regular), Brushes.Black, Me.X + 26, Me.Y + 13)
Большая просьба помочь разобраться с данным вопросом.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2019, 11:37
Ответы с готовыми решениями:

Стереть прямоугольник нарисованный методом DrawRectangle
народ нужна ваша помощ GDIp.DrawRectangle(new Pen(Color.LightBlue, 2), ((i + 2) * 2), ((j + 2) * 2), 2, 2); вот так рисуется...

Полупрозрачность элемента (убрать нарисованный прямоугольник)
Здравствуйте, возникла проблема. Есть примерно следующий код в обработчике события наведения курсора мыши на объект (к примеру,...

Как добавить в прямоугольник, нарисованный на канве, стрелочку?
Рисую прямоугольник на канве Fimage.Canvas.Brush.Color := clLtGray; Fimage.Canvas.Rectangle(x-1,y-1,x+sizeY,y+sizeY); нужно...

6
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
30.12.2019, 15:28
andrsh, у метода DrawString есть перегрузка, в которой можно задать прямоугольную область, в которую надо вписать текст
Graphics.DrawString Метод (System.Drawing) | Microsoft Docs
1
266 / 217 / 54
Регистрация: 01.08.2016
Сообщений: 836
30.12.2019, 15:40  [ТС]
diadiavova, Класс! А я значит плохо смотрел документацию. Надо было лучше смотреть. Спасибо большое. Если я не ошибаюсь это ваш контрол PaintPanel на форуме я нашел. А вот еще чтобы текст в миллиметрах рисовался не подскажете как? Я на PaintPanel в свойствах поставил миллиметры а о все равно рисуется в пикселах по моему. Не подскажете? Или при сохранении в .dxf высота текста будет в миллиметрах? Рисунок у векторный и все линиив миллиметрах.
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
30.12.2019, 16:37
Цитата Сообщение от andrsh Посмотреть сообщение
Если я не ошибаюсь это ваш контрол PaintPanel на форуме я нашел. А вот еще чтобы текст в миллиметрах рисовался не подскажете как?
Вот чего не знаю - того не знаю )) Но я вроде полноценных контролов не выкладывал, обычно делал просто демонстрационные примеры, чтобы показать в работе что-то.
Цитата Сообщение от andrsh Посмотреть сообщение
А вот еще чтобы текст в миллиметрах рисовался не подскажете как?
Да вроде так
Graphics.PageUnit Свойство (System.Drawing) | Microsoft Docs
0
266 / 217 / 54
Регистрация: 01.08.2016
Сообщений: 836
30.12.2019, 16:47  [ТС]
diadiavova, Данное свойство делает сетку координат в миллиметрах или что там установишь. Даное свойство у меня установлено
VB.NET
1
pea.Graphics.PageUnit = GraphicsUnit.Millimeter
Но когда я рисую текст:
VB.NET
1
pea.Graphics.DrawString("Руст.кВт", New Font("Cambria", 8.5, FontStyle.Regular), Brushes.Black, Me.X + 32, Me.Y + 180)
то отрисовка текста идет не миллиметрах. На контроле PaintPanel в свойствах поставил миллиметры для текста, но 8,5 это никак не миллиметры судя по соотношению высоты прямоугольника куда я данный текст вставляю и высоты текста.
0
 Аватар для diadiavova
7259 / 2606 / 744
Регистрация: 11.04.2015
Сообщений: 4,150
Записей в блоге: 43
02.01.2020, 15:57
andrsh, это должно работать для размеров прямоугольника. Для шрифта нужно использовать перегрузку конструктора, принимающую параметр GraphicsUnit, ну например вот эту
1
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
09.01.2020, 14:38
Несколько расширил предыдущий пример (https://www.cyberforum.ru/post14145130.html) с включением ввода текста и сдвигом объектов.
Вложения
Тип файла: rar WorkWithGraphics2.rar (15.1 Кб, 7 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2020, 14:38
Помогаю со студенческими работами здесь

Refrech() или что-то другое? Удалить нарисованный прямоугольник
Получаю hwnd окна которое находится под курсором, при этом обвожу это окно красной рамкой. При перемещении курсора на другое окно нужно...

Пропадает нарисованный на Canvas прямоугольник и текст в клиент-серверном приложении
Доброго времени Вам. Вопросик, возник... Короче есть клиент он: 1. Делает скриншот экрана. 2. Добавляет на него полупрозрачный...

Как нарисовать прямоугольник вокруг текста?
Возможно ли сделать обводку текста, есть такой код... g.DrawString(textBox1.Text, new Font(combofont.Text,...

Подогнать размер текста под прямоугольник
Рисую и печатаю текст на канве. Имеется прямоугольник с заданными размерами в пикселях (например, 150 на 80). И есть строка с текстом. ...

Прямоугольник по размеру исходя из текста внутри него
Добрый день, дорогие друзья. Имеется блок div, в нем один заголовок и маркированный список. Задача сделать так, чтобы блок был вписан в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
[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
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru