Графобъект выходит из рамки ZedGraph Axis - PullRequest
1 голос
/ 01 февраля 2012

Я работаю над настраиваемым радиочастотным анализатором, где я должен составлять радиопакеты в виде прямоугольников, используя ZedGraph. Работа почти завершена, и график работает нормально, но проблемы, с которыми я сталкиваюсь: (1) прямоугольники выходят за рамки оси (2) курсор мыши показывает всего 3 значения, но мне нужно показать только (x, y) значения , Вот код:

    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();

    }

Любая помощь будет высоко оценена.

Спасибо.

1 Ответ

1 голос
/ 01 февраля 2012

установите IsClippedToChartRect свойство BoxObject в значение true, оно будет отображать прямоугольник внутри прямоугольника оси.

...