我正在尝试绘制笔宽为 1 的垂直直线。以下方法绘制折线图的垂直网格线。
public override void DrawGridLines(GDIGraphics graphics, Rectangle plotArea)
{
using (Pen pen = new Pen(gridLineColor, gridLineThickness))
{
float x = plotArea.Right - 1;
for (int i = 0; i < niceIntervalCount; i++)
{
int roundedX = Mathf.RoundToInt(x);
graphics.DrawLine(pen, roundedX, plotArea.Top, roundedX, plotArea.Bottom - 2);
x -= niceIntervalSpacing;
}
}
}
gridLineThickness
设置为 1。我将整数参数传递给DrawLine
方法以防止子像素渲染。我还禁用了抗锯齿并设置graphics.PageUnit
为GraphicsUnit.Pixel
. 在一种情况下,以 2 的粗细绘制垂直线(通常,当多条线时)。
在其他情况下,此错误会消失。
单击上面的图像以查看它们的完整尺寸而不会失真。