2011-03-23 81 views

回答

8

简答:没有。

要做类似的事情,我创建了额外的SymbolObj类,并将该类的对象添加到窗格以标记一些重要的点。

下面是一些代码为:

internal class SymbolObj : ZedGraph.GraphObj 
{ 
    private ZedGraph.Symbol symbol; 

    public SymbolObj(ZedGraph.SymbolType type, Color color, PointF position, float size) 
    { 
     this.symbol = new ZedGraph.Symbol(type, color); 
     this.symbol.Size = size; 
     if((type== SymbolType.Plus || type == SymbolType.Star || type== SymbolType.HDash || type == SymbolType.XCross || type == SymbolType.VDash) && size >= 4) 
      this.symbol.Border.Width = 3f; 
     this.symbol.Fill.IsVisible = true; 
     this.symbol.Fill.Color = color; 
     this.Location.X = position.X; 
     this.Location.Y = position.Y; 
    } 

    public SymbolObj(SymbolObj rhs) 
     : base(rhs) 
    { 
     this.symbol = new Symbol(rhs.symbol); 
    } 

    public override void Draw(Graphics g, ZedGraph.PaneBase pane, float scaleFactor) 
    { 
     if (((GraphPane)pane).XAxis.Type == AxisType.Text) 
     { 
      if (Location.X > 0) 
      { 
       var xx = new double[(int)Location.X]; 
       var yy = new double[(int)Location.X]; 

       for (int i = 0; i < Location.X; i++) 
       { 
        xx[i] = i; 
        yy[i] = double.NegativeInfinity; 

       } 
       yy[yy.Count() - 1] = Location.Y; 
       LineItem line = new LineItem("Symbol", xx, yy, symbol.Fill.Color, SymbolType.None); 
       symbol.Draw(g, (GraphPane)pane, line, scaleFactor, false); 
      } 
     } 
     else 
     { 
      LineItem line = new LineItem("Symbol", new double[] { Location.X }, new double[] { Location.Y }, symbol.Fill.Color, SymbolType.None); 
      symbol.Draw(g, (GraphPane)pane, line, scaleFactor, false); 
     } 
    } 

    public override void GetCoords(ZedGraph.PaneBase pane, Graphics g, float scaleFactor, out string shape, out string coords) 
    { 
     shape = "point"; 
     coords = this.Location.X.ToString() + ", " + this.Location.Y.ToString(); 
    } 
} 
+0

喜这对我的作品非常好!谢谢 – womisa 2011-03-24 13:33:41

+0

我很高兴它有帮助。你应该接受我的答案,如果它帮助你,upvote,如果你觉得它很有价值等。这是自定义的stackoverflow :) – Gacek 2011-03-24 13:43:50