Winform中设置ZedGraph鼠标焦点位置画出十字线并在鼠标移出时十字线消失
生活随笔
收集整理的這篇文章主要介紹了
Winform中设置ZedGraph鼠标焦点位置画出十字线并在鼠标移出时十字线消失
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
Winforn中設置ZedGraph曲線圖的屬性、坐標軸屬性、刻度屬性:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100112573
在鼠標經過曲線附近時獲取最近曲線以及曲線上點的坐標,并以此坐標表示一條十字線。
效果
?
注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
綁定鼠標移動事件
zgc.MouseMove += zgc_MouseMove;其中zgc是 ZedGraphControl zgc
?private static void zgc_MouseMove(object sender, MouseEventArgs e){using (Graphics gc = Global.zedGraphControl1.CreateGraphics())using (Pen pen = new Pen(Color.Green)){//設置畫筆的寬度pen.Width = 1;pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;RectangleF rect = Global.zedGraphControl1.GraphPane.Chart.Rect;//確保在畫圖區域if (rect.Contains(e.Location)){Global.zedGraphControl1.Refresh();//畫豎線gc.DrawLine(pen, e.X, rect.Top, e.X, rect.Bottom);//畫橫線gc.DrawLine(pen, rect.Left, e.Y, rect.Right, e.Y);}}}注:
Global.zedGraphControl1是全局域的zedGraphControl對象。
這樣后會隨著鼠標的移動產生十字線,但是在離開pane時怎樣將畫好的十字線刪除掉。
綁定其鼠標移除事件
zgc.MouseLeave += zgc_MouseLeave;實現方法
?private static void zgc_MouseLeave(object sender, EventArgs e){using (Graphics gc = Global.zedGraphControl1.CreateGraphics())using (Pen pen = new Pen(Color.Green)){//設置畫筆的寬度pen.Width = 1;pen.DashStyle = System.Drawing.Drawing2D.DashStyle.DashDot;RectangleF rect = Global.zedGraphControl1.GraphPane.Chart.Rect;//確保在畫圖區域Global.zedGraphControl1.Refresh();//畫豎線gc.DrawLine(pen, 0, 0, 0, 0);//畫橫線gc.DrawLine(pen, 0, 0, 0, 0);}}這里采取的方法是采用將線畫到原點的方式使其消失。
?
?
總結
以上是生活随笔為你收集整理的Winform中设置ZedGraph鼠标焦点位置画出十字线并在鼠标移出时十字线消失的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker Compose安装Regi
- 下一篇: Winform中设置ZedGraph的曲