Index: trunk/sources/HeuristicLab.Visualization/3.2/ChartDataRowsModel.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/ChartDataRowsModel.cs	(revision 1840)
+++ trunk/sources/HeuristicLab.Visualization/3.2/ChartDataRowsModel.cs	(revision 1876)
@@ -17,7 +17,16 @@
     private string xAxisLabel = "";
     private bool showXAxisLabel = true;
+    private bool showXAxisGrid = true;
     private ILabelProvider labelProvider = new ContinuousLabelProvider("0.##");
 
     private ViewSettings viewSettings = new ViewSettings();
+
+    public bool ShowXAxisGrid {
+      get { return showXAxisGrid; }
+      set {
+        this.showXAxisGrid = value;
+        OnModelChanged();
+      }
+    }
 
     public ILabelProvider XAxisLabelProvider {
Index: trunk/sources/HeuristicLab.Visualization/3.2/Grid.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/Grid.cs	(revision 1840)
+++ 	(revision )
@@ -1,53 +1,0 @@
-using System.Drawing;
-
-namespace HeuristicLab.Visualization {
-  public class Grid : WorldShape {
-    private Color color = Color.LightBlue;
-
-    public override void Draw(Graphics graphics) {
-      ClearShapes();
-
-      foreach (double y in AxisTicks.GetTicks(YAxis.PixelsPerInterval,
-                                              Parent.Viewport.Height,
-                                              ClippingArea.Height,
-                                              ClippingArea.Y1)) {
-        LineShape line = new LineShape(ClippingArea.X1, y,
-                                       ClippingArea.X2, y,
-                                       color, 1,
-                                       DrawingStyle.Dashed);
-        AddShape(line);
-      }
-
-      foreach (double x in AxisTicks.GetTicks(XAxis.PixelsPerInterval,
-                                              Parent.Viewport.Width,
-                                              ClippingArea.Width,
-                                              ClippingArea.X1)) {
-        LineShape line = new LineShape(x, ClippingArea.Y1,
-                                       x, ClippingArea.Y2,
-                                       color, 1,
-                                       DrawingStyle.Dashed);
-        AddShape(line);
-      }
-
-      LineShape lineZeroX = new LineShape(0, ClippingArea.Y1,
-                                          0, ClippingArea.Y2,
-                                          color, 3,
-                                          DrawingStyle.Dashed);
-
-      LineShape lineZeroY = new LineShape(ClippingArea.X1, 0,
-                                          ClippingArea.X2, 0,
-                                          color, 3,
-                                          DrawingStyle.Dashed);
-
-      AddShape(lineZeroX);
-      AddShape(lineZeroY);
-
-      base.Draw(graphics);
-    }
-
-    public Color Color {
-      get { return color; }
-      set { color = value; }
-    }
-  }
-}
Index: trunk/sources/HeuristicLab.Visualization/3.2/HeuristicLab.Visualization-3.2.csproj
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/HeuristicLab.Visualization-3.2.csproj	(revision 1840)
+++ trunk/sources/HeuristicLab.Visualization/3.2/HeuristicLab.Visualization-3.2.csproj	(revision 1876)
@@ -115,5 +115,5 @@
     <Compile Include="LabelProvider\ContinuousLabelProvider.cs" />
     <Compile Include="LabelProvider\DiscreteLabelProvider.cs" />
-    <Compile Include="Grid.cs" />
+    <Compile Include="YAxisGrid.cs" />
     <Compile Include="HorizontalLineShape.cs" />
     <Compile Include="LabelProvider\ILabelProvider.cs" />
@@ -164,4 +164,5 @@
     <Compile Include="WorldShape.cs" />
     <Compile Include="XAxis.cs" />
+    <Compile Include="XAxisGrid.cs" />
     <Compile Include="YAxis.cs" />
     <Compile Include="YAxisDescriptor.cs" />
Index: trunk/sources/HeuristicLab.Visualization/3.2/IChartDataRowsModel.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/IChartDataRowsModel.cs	(revision 1840)
+++ trunk/sources/HeuristicLab.Visualization/3.2/IChartDataRowsModel.cs	(revision 1876)
@@ -21,4 +21,5 @@
     string XAxisLabel { get; set; }
     bool ShowXAxisLabel { get; set; }
+    bool ShowXAxisGrid { get; set; }
 
     event ModelChangedHandler ModelChanged;
Index: trunk/sources/HeuristicLab.Visualization/3.2/LineChart.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/LineChart.cs	(revision 1840)
+++ trunk/sources/HeuristicLab.Visualization/3.2/LineChart.cs	(revision 1876)
@@ -18,4 +18,5 @@
     private readonly LegendShape legendShape = new LegendShape();
     private readonly XAxis xAxis = new XAxis();
+    private readonly XAxisGrid xAxisGrid = new XAxisGrid();
     private readonly List<RowEntry> rowEntries = new List<RowEntry>();
 
@@ -87,4 +88,8 @@
 
       titleShape.Text = model.Title;
+
+      if (model.ShowXAxisGrid) {
+        canvas.AddShape(xAxisGrid);
+      }
 
       foreach (YAxisDescriptor yAxisDescriptor in model.YAxes) {
@@ -144,4 +149,6 @@
         rowEntry.LinesShape.BoundingBox = linesAreaBoundingBox;
       }
+
+      xAxisGrid.BoundingBox = linesAreaBoundingBox;
 
       foreach (YAxisDescriptor yAxisDescriptor in model.YAxes) {
@@ -348,4 +355,9 @@
 
     private void SetClipX(double x1, double x2) {
+      xAxisGrid.ClippingArea = new RectangleD(x1,
+                                              xAxisGrid.ClippingArea.Y1,
+                                              x2,
+                                              xAxisGrid.ClippingArea.Y2);
+
       xAxis.ClippingArea = new RectangleD(x1,
                                           0,
@@ -374,4 +386,9 @@
 
     private void SetClipY(RowEntry rowEntry, double y1, double y2) {
+      xAxisGrid.ClippingArea = new RectangleD(xAxisGrid.ClippingArea.X1,
+                                              y1,
+                                              xAxisGrid.ClippingArea.X2,
+                                              y2);
+
       rowEntry.LinesShape.ClippingArea = new RectangleD(rowEntry.LinesShape.ClippingArea.X1,
                                                         y1,
@@ -469,4 +486,5 @@
 
     private void OnModelChanged() {
+      UpdateLayout();
       canvasUI.Invalidate();
     }
@@ -671,8 +689,8 @@
 
     private class YAxisInfo {
-      private readonly Grid grid = new Grid();
+      private readonly YAxisGrid grid = new YAxisGrid();
       private readonly YAxis yAxis = new YAxis();
 
-      public Grid Grid {
+      public YAxisGrid Grid {
         get { return grid; }
       }
Index: trunk/sources/HeuristicLab.Visualization/3.2/Options/Options.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/Options/Options.Designer.cs	(revision 1840)
+++ trunk/sources/HeuristicLab.Visualization/3.2/Options/Options.Designer.cs	(revision 1876)
@@ -53,4 +53,5 @@
       this.flpShowYAxis = new System.Windows.Forms.FlowLayoutPanel();
       this.fdFont = new System.Windows.Forms.FontDialog();
+      this.chkShowXAxisGrid = new System.Windows.Forms.CheckBox();
       this.Optionstabs.SuspendLayout();
       this.tabPage1.SuspendLayout();
@@ -286,4 +287,5 @@
       // tpXAxis
       // 
+      this.tpXAxis.Controls.Add(this.chkShowXAxisGrid);
       this.tpXAxis.Controls.Add(this.btnChangeXAxisFont);
       this.tpXAxis.Location = new System.Drawing.Point(4, 22);
@@ -357,4 +359,15 @@
       this.flpShowYAxis.Size = new System.Drawing.Size(275, 57);
       this.flpShowYAxis.TabIndex = 0;
+      // 
+      // chkShowXAxisGrid
+      // 
+      this.chkShowXAxisGrid.AutoSize = true;
+      this.chkShowXAxisGrid.Location = new System.Drawing.Point(3, 32);
+      this.chkShowXAxisGrid.Name = "chkShowXAxisGrid";
+      this.chkShowXAxisGrid.Size = new System.Drawing.Size(107, 17);
+      this.chkShowXAxisGrid.TabIndex = 3;
+      this.chkShowXAxisGrid.Text = "Show X-Axis Grid";
+      this.chkShowXAxisGrid.UseVisualStyleBackColor = true;
+      this.chkShowXAxisGrid.CheckedChanged += new System.EventHandler(this.chkShowXAxisGrid_CheckedChanged);
       // 
       // Options
@@ -376,4 +389,5 @@
       this.tpTitle.PerformLayout();
       this.tpXAxis.ResumeLayout(false);
+      this.tpXAxis.PerformLayout();
       this.tpYAxes.ResumeLayout(false);
       this.tpYAxes.PerformLayout();
@@ -415,4 +429,5 @@
     private System.Windows.Forms.FlowLayoutPanel flpShowYAxis;
     private System.Windows.Forms.FontDialog fdFont;
+    private System.Windows.Forms.CheckBox chkShowXAxisGrid;
     private System.Windows.Forms.TextBox tbxTitle;
     private System.Windows.Forms.Label label5;
Index: trunk/sources/HeuristicLab.Visualization/3.2/Options/Options.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/Options/Options.cs	(revision 1840)
+++ trunk/sources/HeuristicLab.Visualization/3.2/Options/Options.cs	(revision 1876)
@@ -13,4 +13,5 @@
     private string oldTitle;
     private Dictionary<CheckBox, bool> ShowYAxisBoxes;
+    private bool oldShowXAxisGrid;
     private Dictionary<CheckBox, bool> yAxisClipChangeableBoxes;
 
@@ -65,4 +66,6 @@
 
     public void ResetSettings() {
+      model.ShowXAxisGrid = oldShowXAxisGrid;
+
       foreach (var param in oldLineParams) {
         param.applySettings();
@@ -150,4 +153,7 @@
 
     private void Options_Load(object sender, EventArgs e) {
+      oldShowXAxisGrid = model.ShowXAxisGrid;
+      chkShowXAxisGrid.Checked = model.ShowXAxisGrid;
+
       InitTabPageLines();
       InitTabPageYAxes();
@@ -238,4 +244,8 @@
     }
 
+    private void chkShowXAxisGrid_CheckedChanged(object sender, EventArgs e) {
+      model.ShowXAxisGrid = chkShowXAxisGrid.Checked;
+    }
+
     private void tbxTitle_TextChanged(object sender, EventArgs e) {
       model.Title = tbxTitle.Text;
Index: trunk/sources/HeuristicLab.Visualization/3.2/XAxisGrid.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/XAxisGrid.cs	(revision 1876)
+++ trunk/sources/HeuristicLab.Visualization/3.2/XAxisGrid.cs	(revision 1876)
@@ -0,0 +1,29 @@
+using System.Drawing;
+
+namespace HeuristicLab.Visualization {
+  public class XAxisGrid : WorldShape {
+    private Color color = Color.LightBlue;
+
+    public override void Draw(Graphics graphics) {
+      ClearShapes();
+
+      foreach (double x in AxisTicks.GetTicks(XAxis.PixelsPerInterval,
+                                              Parent.Viewport.Width,
+                                              ClippingArea.Width,
+                                              ClippingArea.X1)) {
+        LineShape line = new LineShape(x, ClippingArea.Y1,
+                                       x, ClippingArea.Y2,
+                                       color, 1,
+                                       DrawingStyle.Dashed);
+        AddShape(line);
+      }
+
+      base.Draw(graphics);
+    }
+
+    public Color Color {
+      get { return color; }
+      set { color = value; }
+    }
+  }
+}
Index: trunk/sources/HeuristicLab.Visualization/3.2/YAxisGrid.cs
===================================================================
--- trunk/sources/HeuristicLab.Visualization/3.2/YAxisGrid.cs	(revision 1876)
+++ trunk/sources/HeuristicLab.Visualization/3.2/YAxisGrid.cs	(revision 1876)
@@ -0,0 +1,42 @@
+using System.Drawing;
+
+namespace HeuristicLab.Visualization {
+  public class YAxisGrid : WorldShape {
+    private Color color = Color.LightBlue;
+
+    public override void Draw(Graphics graphics) {
+      ClearShapes();
+
+      foreach (double y in AxisTicks.GetTicks(YAxis.PixelsPerInterval,
+                                              Parent.Viewport.Height,
+                                              ClippingArea.Height,
+                                              ClippingArea.Y1)) {
+        LineShape line = new LineShape(ClippingArea.X1, y,
+                                       ClippingArea.X2, y,
+                                       color, 1,
+                                       DrawingStyle.Dashed);
+        AddShape(line);
+      }
+
+      LineShape lineZeroX = new LineShape(0, ClippingArea.Y1,
+                                          0, ClippingArea.Y2,
+                                          color, 3,
+                                          DrawingStyle.Dashed);
+
+      LineShape lineZeroY = new LineShape(ClippingArea.X1, 0,
+                                          ClippingArea.X2, 0,
+                                          color, 3,
+                                          DrawingStyle.Dashed);
+
+      AddShape(lineZeroX);
+      AddShape(lineZeroY);
+
+      base.Draw(graphics);
+    }
+
+    public Color Color {
+      get { return color; }
+      set { color = value; }
+    }
+  }
+}
