1. 程式人生 > >ZedGraph控制元件常用方法和屬性總結

ZedGraph控制元件常用方法和屬性總結

     最近在WPF使用ZedGraph控制元件,發現這個控制元件的功能很強大,據說採用了雙緩衝機制來繪製圖,只要控制好顯示的幀速,能夠顯示速度較快的動態圖。

參考:https://blog.csdn.net/qq_26093511/article/details/51329059

1、常用屬性設定

常用的屬性設定包括X,Y軸範圍、刻度大小設定、滑鼠滾動放大縮小控制等。

            zedGraphControl2.IsShowPointValues = true;  //滑鼠經過圖表上的點時是否氣泡顯示該點所對應的值
            zedGraphControl2.IsZoomOnMouseCenter = true;//使用滾輪時以滑鼠所在點進行縮放還是以圖形中心進行縮放  true為以滑鼠所在點進行縮放
            zedGraphControl2.GraphPane.Title.Text = "Spectrogram";
            zedGraphControl2.GraphPane.XAxis.Title.Text = "WaveLength/nm";
            zedGraphControl2.GraphPane.YAxis.Title.Text = "Intensity";
            //設定X、Y軸範圍
            zedGraphControl2.GraphPane.XAxis.Scale.Min = 0;//MainWindow.waveData[1] - 3;              //X軸最小值0 x軸的兩邊留出一定餘量           
            zedGraphControl2.GraphPane.XAxis.Scale.Max = 512;// MainWindow.waveData[512] + 3;
            zedGraphControl2.GraphPane.YAxis.Scale.Min = 0;
            zedGraphControl2.GraphPane.YAxis.Scale.Max = 4000;           //這裡要改成動態的,大小隨波形改變
            // zedGraphControl2.GraphPane.YAxis.Scale.MaxAuto = true;//根據數值的大小自動的設定Y軸的大小

            //設定X、Y軸的刻度大小
            zedGraphControl2.GraphPane.XAxis.Scale.MinorStep = 5;     //X軸小刻度 小跨度
            zedGraphControl2.GraphPane.XAxis.Scale.MajorStep = 50;    //X軸顯示的最大大刻度
            // zedGraphControl2.GraphPane.YAxis.Scale.MinorStep = 100;
            //zedGraphControl2.GraphPane.YAxis.Scale.MajorStep = 1000;
            zedGraphControl2.GraphPane.YAxis.Scale.MajorStepAuto = true;//自動設定Y軸的大刻度大小
            zedGraphControl2.GraphPane.YAxis.Scale.MinorStepAuto = true;//自動設定Y軸的小刻度大小
            zedGraphControl2.GraphPane.YAxis.Scale.IsUseTenPower = false;//Y軸不以10的冪顯示
            zedGraphControl2.AxisChange();

            //將X、Y軸的對面座標軸隱藏
            zedGraphControl2.GraphPane.XAxis.MajorTic.IsOpposite = false;
            zedGraphControl2.GraphPane.YAxis.MajorTic.IsOpposite = false;
            zedGraphControl2.GraphPane.YAxis.MinorTic.IsOpposite = false;
            zedGraphControl2.GraphPane.XAxis.MinorTic.IsOpposite = false;

            //zedgraph顯示參考線/輔助線/網格線
            zedGraphControl2.GraphPane.XAxis.MajorGrid.IsVisible = true;
            zedGraphControl2.GraphPane.YAxis.MajorGrid.IsVisible = true;
            //控制x,y軸
            zedGraphControl2.IsEnableHZoom = false;//不允許橫向縮放

2、常用方法設定

     這個控制元件的常用方法有儲存圖片、列印預覽、列印、複製圖表到剪貼簿、圖表自適應等。

       //儲存圖片
        private void Save_image_Click(object sender, RoutedEventArgs e)
        {
            zedGraphControl2.SaveAs();//開啟影象另存為對話方塊   此處呼叫zedgraph控制元件的內部功能
        }
        //列印預覽
        private void PrintPreview_Click(object sender, RoutedEventArgs e)
        {
            zedGraphControl2.DoPrintPreview();
        }
        //列印當前圖片
        private void Print_Click(object sender, RoutedEventArgs e)
        {
            zedGraphControl2.DoPrint();
        }
        //列印設定對話方塊
        private void PrintPageSetup_Click(object sender, RoutedEventArgs e)
        {
            zedGraphControl2.DoPageSetup();
        }
        //複製圖片到剪貼簿
        private void CopyImage_Click(object sender, RoutedEventArgs e)
        {
            zedGraphControl2.Copy(true);
        }

3、新增標籤功能設定

給要繪製的曲線的某個點上新增一個標籤。

 LineItem ADCurve=  zedGraphControl2.GraphPane.AddCurve("AD", frameList, Data .adLineColor , SymbolType.None);//生成曲線和圖例 ,標籤加到這條線上的某個點
PointPair pt = ADCurve.Points[maxXValue];//獲取線條上最大值點座標  maxXValue代表第幾個元素
double showX = 0;
string label = showX.ToString("f2") + "," + maxYValue.ToString("f2");
TextObj text = new TextObj(label, pt.X, pt.Y - 10, CoordType.AxisXYScale, AlignH.Left, AlignV.Center);//設定標籤要顯示的內容和位置
text.FontSpec.Border.IsVisible = true;//新增標籤的邊框
text.FontSpec.Fill.IsVisible = true;//對標籤填充顏色
text.FontSpec.Fill.Color = System.Drawing.Color.WhiteSmoke;
text.FontSpec.Angle = 0;//橫向顯示
zedGraphControl2.GraphPane.GraphObjList.Add(text);//標籤新增到圖上