2012-04-18 15 views
1

我正在开发自己的图形绘制应用程序。我已经得到了图表和更新机制,像我想要的那样工作。现在,我想画一个网格,所以我需要在我的图表坐标轴上一些行,所以我想出了这个小环:单循环中多行(System.Windows.Shapes)C#

 Gridx = new Line(); 

     while (x <= _XAxisSize) 
     { 

      gridx.X1 = x; 
      gridx.X2 = x; 
      gridx.Y1 = _YAxisSize - 20; 
      gridx.Y2 = _YAxisSize + 20; 

      x = x + XgridSize; 

      gridx.UpdateLayout(); 
     } 

这是不行的,因为它只能绘制一条线(循环的最后一点)。所以我需要在该轴上绘制多条线。如何道琼斯我达到这个目的,利用无论是从system.Windows.Shapes库行(),或在图书馆任何其他形状

感谢

回答

1

如果你想多行,您需要创建多个行:

while (x <= _XAxisSize) 
{ 
    var gridx = new Line(); 

    gridx.X1 = x; 
    gridx.X2 = x; 
    gridx.Y1 = _YAxisSize - 20; 
    gridx.Y2 = _YAxisSize + 20; 

    //need to add gridx to your view here 

    x = x + XgridSize; 
} 

然而,对于这样的静态行,你可能会更好看使用GeometryDrawing具有比Line形状的开销要少得多。有关差异的详细信息,请参阅here