Я подклассифицировал элемент управления в C # WinForms, и в моем обработчике OnPaint()
используется пользовательский текст для рисования.
Шрифт установлен в Courier New, используя следующий код в моей форме:
FontFamily family = new FontFamily("Courier New");
this.myControl.Font = new Font(family, 10);
В самом элементе управления строка хранится в realText
, и я использую следующий код, чтобы нарисовать ее на экране:
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
e.Graphics.DrawString(realText, Font, new SolidBrush(ForeColor), ClientRectangle);
}
Результат для некоторого случайного текста примера выглядит следующим образом:
http://img219.imageshack.us/img219/1778/courier.png
Если вы увеличите масштаб, вы увидите, например, что расстояние между первым «как» отличается от расстояния между вторым «как» (1 пиксель против 2 пикселей). Кто-нибудь знает, что может быть причиной этого, или как я могу предотвратить это? При прорисовке с использованием разных шрифтов становится намного больше странностей, но я предполагаю, что все они являются результатом одной и той же проблемы.
Заранее благодарим вас за любые идеи, которые вы можете иметь.