我正在尝试绘制笔宽为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(通常,当多行时)。
在其他情况下,此错误消失。
点击上面的图片,查看完整尺寸,不会失真。