我使用的是System.Windows.Forms.DataVisualization.Charting.Chart控件,並讓ChartArea的AxisX和Y都將Zoomable設置爲true。當圖表放大時,我看到滾動條,但不能拖動它。是否可以拖動滾動條,並讓圖表顯示隨着我拖動滾動條按鈕而移動?我想讓用戶直觀和互動。謝謝!通過拖動滾動條使DataVisualization Chart對象縮放並可滾動
6
A
回答
2
爲了放大和縮小圖表我正在使用MouseWheel事件。我將在下面展示的解決方案遠非完美,但它起作用,至少對我來說:)。
maxChangeRange和minChangeRange的價值應該被計算爲每個數據系列(21和-1是我在項目中使用的值)。此外,假設兩個軸的值範圍相似,如果它們不同,則需要爲其中的一個添加某種縮放比例。
從MouseEventArgs(e.X和e.Y)接收到的鼠標位置是圖表控件中鼠標的位置,不在圖表:)中,所以這種位置縮放功能是有問題的。
爲了使它工作,你需要有圖表控件與圖表區域和軸定義
如果軸標籤自動調整啓用圖表可能是有點「神經質」,而縮放。
我是C#和winforms世界的初學者,所以請記住,這可能不是最好的解決方案。
// Actual total zoom value int deltaScrollTotal; private void chart_MouseWheel(object sender, MouseEventArgs e) { int maxChangeRange = 21; int minChangeRange = -1; int deltaScroll = e.Delta/Math.Abs(e.Delta); deltaScrollTotal += deltaScrollTotal + deltaScroll > minChangeRange && deltaScrollTotal + deltaScroll < maxChangeRange ? deltaScroll : 0; // Additional calculation in order to obtain pseudo // "positional zoom" feature double minXScale = (double)e.X/(double)chart.Width; double maxXScale = 1 - minXScale; double minYScale = (double)e.Y/(double)chart.Height; double maxYScale = 1 - minYScale; // Max and min values into which axis need to be scaled/zoomed double maxX = chart.ChartAreas[0].AxisX.Maximum - deltaScrollTotal * maxXScale; double minX = chart.ChartAreas[0].AxisX.Minimum + deltaScrollTotal * minXScale; double maxY = chart.ChartAreas[0].AxisY.Maximum - deltaScrollTotal * minYScale; double minY = chart.ChartAreas[0].AxisY.Minimum + deltaScrollTotal * maxYScale; chart.ChartAreas[0].AxisX.ScaleView.Zoom(minX, maxX); chart.ChartAreas[0].AxisY.ScaleView.Zoom(minY, maxY); }
此事件需要被連接到圖表控制:
chart.MouseWheel += new MouseEventHandler(chart_MouseWheel);
相關問題
- 1. MS-Chart使用c中的滾動條縮放X軸#
- 2. 我可以通過拖動行項而不是滾動條來滾動ItemsControl
- 3. FLEX - 滾動條和縮放
- 4. WPF縮放+滾動條?
- 5. JQuery拖動可以通過自動滾動拖動通過Containment元素
- 6. 縮放圖像的擺動滾動條
- 7. AngularJS自動滾動拖放
- 8. 通過滾動動畫對象
- 9. 如何使用/通過可拖動對象向上和向下滾動div
- 10. 可拖動滾動。如何在拖動時滾動?
- 11. 通過拖動禁用滾動
- 12. 通過拖動鼠標滾動圖像
- 13. 通過拖動UISlider滾動圖像
- 14. 自動滾動可放開格在拖動過程中
- 15. 拖動,拖放和水平滾動
- 16. 滾動拖動和拖放(WPF)
- 17. JQuery可拖動內滾動不對齊
- 18. Jquery拖放滾動條問題
- 19. 從div滾動條拖放 - 溢出-y滾動VS溢出-x可見
- 20. jquery - 使拖放的對象可拖動
- 21. 通過滾動條/滾輪來區分滾動
- 22. 拖放滾動窗格拖放w/jscrollpane
- 23. 拖放JLabel滾動錯誤
- 24. 放大中心並使用CSS拖動使用Javascript滾動Javascript
- 25. Silverlight縮放轉換調整滾動條
- 26. javafx:scrollpane滾動條內的可拖動節點不拖動綁定拖動節點
- 27. 使DIV滾動條主頁滾動條?
- 28. 可縮放的2D可滾動視圖
- 29. 拖動+滾動jquery
- 30. 拖動滾動div
在問題已經回答了:http://stackoverflow.com/questions/1212914/enable-scrolling-on-the -Microsoft-圖表控制換 - 窗口的形式 – 2012-10-07 23:48:33