C# PrintPageEventArgs.Graphics.DrawRectangle печатает неправильный размер

Я ожидал, что код ниже нарисует прямоугольник шириной 3 дюйма и высотой 1 дюйм. Вместо этого фактический прямоугольник на напечатанной странице имеет ширину 4 дюйма и высоту 2 дюйма.

Каждый прямоугольник, который я пытаюсь нарисовать, всегда на 1 дюйм шире и выше, чем я ожидаю.

Что я делаю неправильно?

Какие дополнительные свойства в PrintPageEventArgs.Graphics я должен установить, чтобы получить прямоугольник правильного размера на печатной странице?

void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
    e.Graphics.PageUnit = GraphicsUnit.Inch;
    e.Graphics.DrawRectangle(Pens.LightGray, 1, 1, 3, 1);
}

1 ответ

Код ниже исправил эту проблему. Я подозреваю, что ширина пера по умолчанию равна 1, что интерпретируется как 1 дюйм. Это сделало прямоугольник очень большим. Задание ширины пера 0 исправило это.

void printDocument_PrintPage(object sender, PrintPageEventArgs e)
{
    e.Graphics.PageUnit = GraphicsUnit.Inch;

    Pen pen = new Pen(Color.LightGray, 0);
    e.Graphics.DrawRectangle(pen, 1, 1, 3, 1);
}
Другие вопросы по тегам