Winform中實現ZedGraph新增自定義Y軸上下限、顏色、標題功能


場景

Winform中實現ZedGraph的多條Y軸(附源碼下載):

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100132245

在上面實現顯示多條自定義Y軸的效果上,改進實現自定義新增Y軸功能。

關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

示例代碼下載

https://download.csdn.net/download/badao_liumang_qizhi/11653210

實現

主窗體添加按鈕,點擊之后彈出Y軸設置界面。

 private void button12_Click(object sender, EventArgs e)
        {
            addY = new AddY();
            addY.Show();

        }

 

其中addY是對應要彈窗顯示的窗體對象,其設計如下

 

 

此窗體有兩個EditText,用來存儲Y軸的上下限,然后使用RadioGroup用來設置標題的選擇,然后使用

ColorEditPicker進行顏色的選擇,以上的控件都是使用的DevExpress的控件。

在點擊新增按鈕時將控件上的所有屬性賦值給聲明的YAxis對象。

private void button1_Click(object sender, EventArgs e)
        {
            YAxis y = new YAxis();
            //標題
            y.Title.Text = this.radioGroup1.Text;
            //顏色
            y.Color = this.colorPickEdit1.Color;
            //下限
            y.Scale.Min = Double.Parse(this.textEdit1.Text);
            //上限
            y.Scale.Max = Double.Parse(this.textEdit2.Text);

            if (setYaxisEvent != null)
            {
                setYaxisEvent(y);
            }
           
        }

 

這里使用的是事件與委托進行跨窗體傳遞對象。

在AddY當前頁面代碼中

//委托的定義
public delegate void SetYaxisDelegete(YAxis s);
//事件聲明
public static event SetYaxisDelegete setYaxisEvent;

 

然后在主頁面Form1中的初始化方法中進行委托的訂閱

//添加Y軸
AddY.setYaxisEvent += new AddY.SetYaxisDelegete(addYaxis);

 

此時傳遞了addYaxis方法名

方法代碼:

public void addYaxis(YAxis y)
        {
            //如果是新增第二條Y軸
            if (ycount == 1)
            {
                //第二條Y軸標題
                myPane.Y2Axis.Title.Text = y.Title.Text.ToString();
              
                //第二條Y軸下限
                myPane.Y2Axis.Scale.Min = y.Scale.Min;
                //第二條Y軸上限
                myPane.Y2Axis.Scale.Max = y.Scale.Max;
                //設置顏色
                myPane.Y2Axis.Color = y.Color;
                //設置刻度線字體顏色
                myPane.Y2Axis.Scale.FontSpec.FontColor = y.Color;
                //設置標題字體顏色
                myPane.Y2Axis.Title.FontSpec.FontColor = y.Color;
                //讓第二條Y軸顯示
                myPane.Y2Axis.IsVisible = true;
                ycount++;
                //關閉窗口
                addY.Close();
                zedGraphControl1.Invalidate();
                
            }
            //否則就是新增第三條及以上
            else
            {
                //int yIndex = myPane.YAxisList.Count+1;
                // 創建第yIndex條Y軸
                YAxis yAxisNew = new YAxis(y.Title.Text.ToString());
                yAxisNew.Scale.Min = y.Scale.Min;
                yAxisNew.Scale.Max = y.Scale.Max;
                //設置Y軸顏色
                yAxisNew.Color = y.Color;
                //設置刻度線字體顏色
                yAxisNew.Scale.FontSpec.FontColor = y.Color;
                //設置標題字體顏色
                yAxisNew.Title.FontSpec.FontColor = y.Color;
                //yAxisNew.Type = AxisType.Text;
                //顯示小刻度 是false則看不到效果
                //yAxisNew.MinorGrid.IsVisible = true;
                // turn off the opposite tics so the Y2 tics don't show up on the Y axis
                //關閉相反的tics,使y2 tics不會顯示在y軸上
                yAxisNew.MajorTic.IsInside = true;
                yAxisNew.MinorTic.IsInside = true;
                yAxisNew.MajorTic.IsOpposite = true;
                yAxisNew.MinorTic.IsOpposite = true;
               
              
                // Align the Y2 axis labels so they are flush to the axis
                //對齊Y2軸標簽,使其與軸平齊
                //yAxisNew.Scale.Align = AlignP.Inside;
                //添加到Y軸的list
                myPane.YAxisList.Add(yAxisNew);
                //關閉窗口
                addY.Close();
                zedGraphControl1.Invalidate();
            }
        }

 

效果

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM