Как нарисовать прямоугольник (в качестве фона) по высоте и ширине строки? - PullRequest
0 голосов
/ 02 августа 2020

У меня есть текст, и, чтобы подчеркнуть его, я хотел бы нарисовать фон в виде прямоугольника.

Я пытаюсь это сделать:

string curEdgePhrase = "Cur edge:";
SizeF curEdgePhraseSize = e.Graphics.MeasureString(curEdgePhrase, SystemFonts.DefaultFont);
string curEdgeValue = ((int)m_ImageStatForCurSelectedRegion.GetEdginess()).ToString();
SizeF curEdgeValueSize = e.Graphics.MeasureString(curEdgeValue, SystemFonts.DefaultFont);

string maxEdgePhrase = "Max edge:";
SizeF maxEdgePhraseSize = e.Graphics.MeasureString(maxEdgePhrase, SystemFonts.DefaultFont);
string maxEdgeValue = ((int)m_ImageStatForCurSelectedRegion_MaxValues.GetEdginess()).ToString();
SizeF maxEdgeValueSize = e.Graphics.MeasureString(maxEdgeValue, SystemFonts.DefaultFont);

SizeF fullValuesArea = new SizeF(curEdgePhraseSize.Width + curEdgeValueSize.Width /*Width*/,
    curEdgePhraseSize.Height + maxEdgePhraseSize.Height /*Height*/);

///***Draw statistic background rectangle***
Point statisticBackgroundRectStartPoint = new Point(10, 10);
Rectangle statisticBackground = new Rectangle(statisticBackgroundRectStartPoint, fullValuesArea.ToSize());

e.Graphics.DrawRectangle(DrawBorderStatisticBackground, statisticBackground);
e.Graphics.FillRectangle(BrushWhiteSmoke, statisticBackground);

Итак, я я измеряю длину и ширину фразы + значения и пытаюсь установить ее как размер моего прямоугольника

Я в результате получаю что-то вроде этого

enter image description here

Do you see this gray rectangle behind the Cur word? This is a result...

But what I actually need is

введите описание изображения здесь

Но этот результат я получаю, если пропущу жестко заданный размер ..

Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...