Сохранить размер шрифта при масштабировании чертежа - PullRequest
0 голосов
/ 18 июня 2010

При рисовании делаю следующее:

Matrix m = new Matrix()
m.Scale(_zoomX, _zoomY)

e.Graphics.Transform = m

e.Graphics.DrawLine(...) ' line representation '
e.Graphics.DrawString(...) ' line text '

Теперь текст также стал масштабироваться. Можно ли этого избежать?

Ответы [ 4 ]

1 голос
/ 23 июня 2010

Чтобы изменить только координаты точки, используйте вместо:

e.Graphics.Transform = m

вот этот:

m.TransformPoints(points)
1 голос
/ 18 июня 2010

Матрицы работают с изображением и не различают его текст или форму.Если позиция текста не имеет значения, вы можете сбросить e.Graphics.Transform

 Matrix oldMAtrix = e.Graphics.Transform;
 e.Graphics.Transform = m;
 e.Graphics.DrawEllipse(new Pen(Color.Black), 20, 20, 20, 20);
 e.Graphics.Transform = oldMAtrix;
 e.Graphics.DrawString("text", this.Font, SystemBrushes.ControlText, 10, 10);
1 голос
/ 18 июня 2010

Вам придется отменить графическое преобразование и нарисовать текст с помощью преобразования Identity (или, по крайней мере, не масштабирующего).

1 голос
/ 18 июня 2010
  • Попробуйте изменить размер шрифта / _zoom при рисовании
...