protected virtual void DrawPixelGrid(Graphics g)
{
float pixelSize;
pixelSize = (float)ZoomFactor;
if (pixelSize > PixelGridThreshold)
{
Rectangle viewport;
float offsetX;
float offsetY;
viewport = GetImageViewPort();
offsetX = Math.Abs(AutoScrollPosition.X) % pixelSize;
offsetY = Math.Abs(AutoScrollPosition.Y) % pixelSize;
using (Pen pen = new Pen(PixelGridColor)
{
DashStyle = DashStyle.Dot
})
{
for (float x = viewport.Left + pixelSize - offsetX; x < viewport.Right; x += pixelSize)
{
g.DrawLine(pen, x, viewport.Top, x, viewport.Bottom);
}
for (float y = viewport.Top + pixelSize - offsetY; y < viewport.Bottom; y += pixelSize)
{
g.DrawLine(pen, viewport.Left, y, viewport.Right, y);
}
g.DrawRectangle(pen, viewport);
}
}
}