1

我正在尝试绘制笔宽为 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.PageUnitGraphicsUnit.Pixel. 在一种情况下,以 2 的粗细绘制垂直线(通常,当多条线时)。

在此处输入图像描述

在其他情况下,此错误会消失。

在此处输入图像描述

单击上面的图像以查看它们的完整尺寸而不会失真。

4

0 回答 0