2012-02-01 44 views
1

我正在使用自定义无线电频率分析器,我必须使用ZedGraph将无线电数据包绘制为矩形。 (1)矩形走出Axis框架(2)鼠标光标显示总共3个值,但我只需要显示(x,y)值。这里是代码:graphobject走出ZedGraph Axis框架

private void CreateGraph(ZedGraphControl zgc) 
    { 

     GraphPane myPane = zgc.GraphPane;    
     myPane.Title.IsVisible = false; 
     myPane.XAxis.Title.Text = "Time(Mili-Seconds)";     

     if (isStartPoint) 
     {     
      startPoint = PacketHandler.getFirstPoint();    
      myPane.XAxis.Scale.Min = startPoint; 

      myPane.XAxis.Scale.MaxAuto = true; 
      myPane.XAxis.Scale.MajorStep=100; 
      myPane.XAxis.Scale.MinorStep=100; 

      myPane.YAxis.IsVisible = false; 
      myPane.YAxis.Title.IsVisible = false; 
      myPane.YAxis.Scale.MinAuto=true; 
      myPane.YAxis.Scale.MaxAuto = true; 
      myPane.YAxis.Scale.MajorStep=10; 
      myPane.YAxis.Scale.MinorStep=10; 
      isStartPoint = false; 
     } 

     double x = PacketHandler.getMcTime(); 
     double y = 5; 
     double w = PacketHandler.getPacketWidth(); 
     double h = 5; 
     int pColor = PacketHandler.getRowColor(); 
     BoxObj box; 
     if (pColor == 0) 
     { 
      box = new BoxObj(x, y, w, h, Color.Black, Color.Tomato); 
     } 
     else if (pColor == 1) 
     { 
      box = new BoxObj(x, y, w, h, Color.Black, Color.Beige); 
     } 
     else if (pColor == 2) 
     { 
      box = new BoxObj(x, y, w, h, Color.Black, Color.LightSeaGreen); 
     } 
     else if (pColor == 3) 
     { 
      box = new BoxObj(x, y, w, h, Color.Black, Color.GreenYellow); 
     } 
     else 
     { 
      box = new BoxObj(x, y, w, h, Color.Black, Color.Tomato); 
     } 

     box.IsVisible = true; 
     box.Location.CoordinateFrame = CoordType.AxisXYScale; 
     box.ZOrder = ZOrder.A_InFront; 
     //zgc.GraphPane.GraphObjList.Add(box); 
     myPane.GraphObjList.Add(box);   

     zgc.AxisChange(); 
     zgc.Invalidate(); 

    } 

任何帮助将高度appriciated。

谢谢。

回答

1

设置IsClippedToChartRect属性BoxObject为true,它将使矩形在Axis矩形内被绘制。