protected virtual void DrawPixelGrid2(Graphics g)
{
float gridSize;
Rectangle imageViewport = this.GetImageViewPort();
int smallGridFillFactor = 1;
if ((float)this.ZoomFactor <= 0.5f)
smallGridFillFactor = 100;
else if ((float)this.ZoomFactor <= 5)
smallGridFillFactor = 10;
else if ((float)this.ZoomFactor > 5)
smallGridFillFactor = 1;
float smallGridCell = (float)this.ZoomFactor * smallGridFillFactor;
int largeGridFillFactor = smallGridFillFactor * 10;
float largeGridCell = (float)this.ZoomFactor * largeGridFillFactor;
float smallGridoffsetX = Math.Abs(this.AutoScrollPosition.X) % smallGridCell;
float smallGridoffsetY = Math.Abs(this.AutoScrollPosition.Y) % smallGridCell;
float largeGridoffsetX = Math.Abs(this.AutoScrollPosition.X) % largeGridCell;
float largeGridoffsetY = Math.Abs(this.AutoScrollPosition.Y) % largeGridCell;
Debug.WriteLine(string.Format("Small GridCell: {0}", smallGridCell));
Debug.WriteLine(string.Format("Large GridCell: {0}", largeGridCell));
Pen majorPen = GetMajorPen();
Pen minorPen = GetMinorPen();
for (float x = imageViewport.Left - smallGridoffsetX; x < imageViewport.Right; x += smallGridCell)
{
g.DrawLine(minorPen, x, imageViewport.Top, x, imageViewport.Bottom);
}
for (float y = imageViewport.Top - smallGridoffsetY; y < imageViewport.Bottom; y += smallGridCell)
{
g.DrawLine(minorPen, imageViewport.Left, y, imageViewport.Right, y);
}
for (float x = imageViewport.Left - largeGridoffsetX; x < imageViewport.Right; x += largeGridCell)
{
g.DrawLine(majorPen, x, imageViewport.Top, x, imageViewport.Bottom);
}
for (float y = imageViewport.Top - largeGridoffsetY; y < imageViewport.Bottom; y += largeGridCell)
{
g.DrawLine(majorPen, imageViewport.Left, y, imageViewport.Right, y);
}
g.DrawRectangle(minorPen, imageViewport);
majorPen.Dispose();
minorPen.Dispose();
return;
}