Sto utilizzando un controllo System.Windows.Forms.DataVisualization.Charting.Chart e ho entrambi gli assi AxisX e Y di ChartArea impostati su Zoomabile su true. Quando il grafico è ingrandito, vedo la barra di scorrimento, ma non posso trascinarla. È possibile trascinare la barra di scorrimento e spostare il display della carta mentre sto trascinando il pulsante della barra di scorrimento? Voglio renderlo intuitivo e interattivo per l'utente. Grazie!Rendi lo zoom degli oggetti del grafico DataVisualization e fai scorrere trascinando la barra di scorrimento
risposta
Per ingrandire e ridurre il grafico, sto usando l'evento MouseWheel. La soluzione che mostrerò qui sotto è tutt'altro che perfetta ma funziona, almeno per me :).
Valori di maxChangeRange e minChangeRange dovranno essere calcolate per ciascuna serie di dati (21 e -1 sono valori che ho usato nel mio progetto). Inoltre, si presume che entrambi gli assi abbiano un intervallo di valori simile nel caso in cui, se sono diversi, è necessario aggiungere un tipo di ridimensionamento per uno di essi.
Le posizioni del mouse ricevute da MouseEventArgs (e.X e e.Y) sono posizioni del mouse all'interno del controllo grafico non all'interno di Chart :), quindi questa funzione di zoom posizionale è in qualche modo difettosa.
Per farlo funzionare è necessario avere il controllo grafico con area del grafico e assi definiti
Se l'asse etichette in forma automatica è abilitata grafico può essere un po ' "nervosi", mentre lo zoom.
Sono un principiante del mondo C# e winforms, quindi tieni presente che questa non è probabilmente la soluzione migliore.
// 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); }
Questo evento deve essere attaccato al controllo grafico:
chart.MouseWheel += new MouseEventHandler(chart_MouseWheel);
- 1. elevazione della barra degli strumenti di Android durante lo scorrimento
- 2. Barra degli strumenti non visualizzata con lo scorrimento per aggiornare
- 3. Rendi l'elemento non modificabile (fai clic su di esso)
- 4. Visualizza l'animazione del controller come lo zoom e lo zoom
- 5. Java - Scorri l'immagine con il mouse trascinando
- 6. La barra degli strumenti Android scompare durante lo scorrimento con Coordinatorlayout
- 7. Prevenire la scheda per scorrere attraverso la barra degli indirizzi
- 8. Zoom e scorrimento con OpenGL ES
- 9. Android Toolbar + Tab Layout + Drawer, Nascondi barra degli strumenti durante lo scorrimento e porta TabLayout all'inizio
- 10. Fai la barra di scorrimento visibile nel contenuto ionico quando si utilizza scorrimento nativo
- 11. Utilizzare jQuery per nascondere la barra di scorrimento div, ma mantenere lo scorrimento?
- 12. WPF: Come posso consentire lo scorrimento con la rotellina del mouse in un ListView mentre trascini gli oggetti di ListView?
- 13. Utilizzo di AppBarLayout.Behavior.DragCallback per controllare lo scorrimento del layout della barra degli strumenti compresso
- 14. Chrome nasconde automaticamente la barra di scorrimento
- 15. Nascosto "liscio" della barra degli strumenti di Android durante lo scorrimento
- 16. Disattivare lo scorrimento del corpo ma mantenere la barra di scorrimento
- 17. Scorrimento uniforme della pagina verticale usando la rotellina del mouse e la barra di scorrimento
- 18. Nascondi barra di stato durante lo scorrimento
- 19. Come disattivare lo zoom su Ctrl + scorrere in Visual Studio 2010?
- 20. Come disattivare lo scorrimento del corpo quando è attiva la compressione della barra di navigazione
- 21. È possibile disabilitare tutto lo scorrimento e lo zoom in una webview di Android?
- 22. UITableView Barra di scorrimento personalizzata
- 23. Scorrimento/zoom di una scena in OpenGL e suddivisione
- 24. Android - barra degli strumenti e la barra di stato come oggetti condivisi con contenuti cambia
- 25. iOS - Trascinando gli oggetti lungo i percorsi curvi
- 26. come abilitare lo zoom nel controllo grafico di Microsoft usando la rotella del mouse
- 27. Scorri RecyclerVisualizza quando lo fai scorrere verso l'alto o fai scorrere verso il basso il recyclerview verso il basso
- 28. Barra degli strumenti che scorre sotto la barra di stato
- 29. Rendere visibile la barra di scorrimento verticale
- 30. Come forzare la barra di scorrimento verticale per mostrare se i risultati di AutoCompleteTextView possono scorrere?
Risposta in questione: http://stackoverflow.com/questions/1212914/enable-scrolling-on-the -Microsoft-chart-control-per-finestre-forme –