Tôi đang sử dụng điều khiển System.Windows.Forms.DataVisualization.Charting.Chart và có AxisX và Y của ChartArea cả hai đều có thể Zoomable thành true. Khi biểu đồ được phóng to, tôi thấy thanh cuộn nhưng không thể kéo nó. Có thể kéo thanh cuộn và di chuyển hiển thị biểu đồ khi tôi đang kéo nút thanh cuộn không? Tôi muốn làm cho nó trực quan và tương tác cho người dùng. Cảm ơn!Làm cho đối tượng Biểu đồ DataVisualization thu phóng và cuộn bằng cách kéo thanh cuộn
Trả lời
Để phóng to và thu nhỏ biểu đồ, tôi đang sử dụng sự kiện MouseWheel. Giải pháp mà tôi sẽ hiển thị bên dưới là xa hoàn hảo nhưng nó hoạt động, ít nhất là cho tôi :).
Giá trị của maxChangeRange và minChangeRange phải được tính cho mỗi chuỗi dữ liệu (21 và -1 là giá trị tôi đã sử dụng trong dự án của mình). Ngoài ra, giả sử rằng cả hai trục có phạm vi giá trị tương tự trong trường hợp nếu chúng khác nhau thì cần phải thêm một số loại tỷ lệ cho một trong số chúng.
Vị trí chuột nhận được từ MouseEventArgs (e.X và e.Y) là vị trí của con chuột bên trong điều khiển biểu đồ không bên trong Biểu đồ :) vì vậy tính năng thu phóng vị trí này là loại bị lỗi.
Để làm cho nó hoạt bạn cần phải có quyền kiểm soát biểu đồ với diện tích biểu đồ và trục định nghĩa
Nếu trục nhãn tự động phù hợp được kích hoạt biểu đồ có thể là một chút "tăng vọt", trong khi phóng to.
Tôi là người mới bắt đầu của C# và thế giới winforms vì vậy xin lưu ý rằng đây có lẽ không phải là giải pháp tốt nhất.
// 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); }
sự kiện này cần phải được gắn liền với sự kiểm soát biểu đồ:
chart.MouseWheel += new MouseEventHandler(chart_MouseWheel);
- 1. lực kéo thanh cuộn trên Safari
- 2. WPF - Phóng to hình ảnh bên trong trình xem cuộn và có các thanh cuộn điều chỉnh cho phù hợp
- 3. Android WebView để trống cho thanh cuộn
- 4. Có thể cuộn nhưng không có thanh cuộn
- 5. Cuộn trang dọc mượt mà bằng cách sử dụng bánh xe chuột và thanh cuộn
- 6. thanh cuộn ngang cho ul
- 7. Kéo cuộn trong ứng dụng GTK +
- 8. tắt tính năng kéo thu phóng trong bản đồ Google bằng cách nhấp vào nút
- 9. Cuộn và phóng to hình ảnh phong phú trên android
- 10. Thanh cuộn CSS tùy chỉnh cho Firefox
- 11. Có thể liên tục theo dõi vùng MKMapView trong khi cuộn/thu phóng không?
- 12. Cuộn trong khi kéo và thả (WPF)
- 13. Sự kiện thanh cuộn khi cuộn?
- 14. CSS: Thanh cuộn cho trục y khiến thanh cuộn cho trục x
- 15. Có thể tắt tất cả thao tác cuộn và thu phóng trong chế độ xem web trên Android không?
- 16. Bootstrap 3: Thanh cuộn
- 17. Thanh cuộn Tkinter của Python cho khung
- 18. Làm cách nào để tự động cuộn JTextPane khi thanh cuộn ở dưới cùng và khóa cuộn bị tắt?
- 19. Bootstrap: Cách bật thanh cuộn?
- 20. D3.js Thu phóng và di chuyển biểu đồ cây có thể thu gọn
- 21. cách tắt/bật kéo, thu phóng và thay đổi con trỏ trong Google maps v3
- 22. Làm cách nào để thu phóng và thu phóng bản đồ đó thực sự đã kết thúc?
- 23. Cách ẩn thanh cuộn bằng cách sử dụng JavaScript
- 24. Ẩn thanh cuộn có tràn: cuộn được bật
- 25. jqGrid thanh cuộn ngang
- 26. thanh cuộn trong JTextArea
- 27. Bật cuộn trên bảng điều khiển Microsoft cho Windows Forms
- 28. Làm cách nào để thực hiện phóng to và thu nhỏ bằng biểu đồ đường lõi-cốt lõi trên iPhone?
- 29. Cách tính chiều rộng của thanh cuộn?
- 30. Animate.CSS Thêm Thanh cuộn?
trả lời trong câu hỏi: http://stackoverflow.com/questions/1212914/enable-scrolling-on-the -microsoft-chart-control-for-windows-forms –