Рисование прямоугольной границы вокруг текста, нарисованного GraphicsPath - PullRequest
0 голосов
/ 05 декабря 2011

Я использую метод GraphicPath.Addstring, чтобы добавить строку к графическому пути, и Graphics.drawpath, чтобы нарисовать строку.Я хочу рассчитать ширину и высоту нарисованного текста, чтобы я мог нарисовать прямоугольник вокруг нарисованного текста.Я пытался использовать Graphics.MeasureString и TextRenderer.MeasureText для вычисления ширины и Graphicpath.addrectangle и Graphics.Drawpath для рисования прямоугольника, но я не могу получить правильные размеры с разными шрифтами.

Пожалуйстапомогите мне решить это.

Ответы [ 4 ]

1 голос
/ 06 декабря 2011

Добавьте вашу строку в путь, затем вызовите

GraphicsPath.GetBounds();

для определения региона. Это нужно будет накачать в зависимости от размера пера, используемого для визуализации строки.

0 голосов
/ 24 марта 2015

Небольшая коррекция:

gp.AddRectangle(new Rectangle(new Point(0, 0), textSize.ToSize());
0 голосов
/ 05 декабря 2011

надеюсь, что этот пример поможет вам

var gp = new GraphicsPath();
var g = baseControl.CreateGraphics();
var textSize = g.MeasureString(text, basefont);
gp.AddRectangle(new Rectangle(new Point(0, 0), textSize);
gp.AddString("Your String", basefont.FontFamily, basefont.Style, basefont.Size - 0.25f);
0 голосов
/ 05 декабря 2011

Может быть, посмотрите на Graphics.MeasureCharacterRanges

...