Warum hat auto-Zoom/Scroll funktioniert nicht für mein Diagramm?
um es kurz zu machen ich überprüft, die "WinFormsChartSamples" von Microsoft bereitgestellt. Was ich wissen wollte ist, wie zu aktivieren, Zoomen und scrollen für Chartcontrols. Das Beispiel, das gezeigt wird, es ist ziemlich kurz.
using System.Windows.Forms.DataVisualization.Charting;
...
//Set automatic zooming
chart1.ChartAreas["Default"].AxisX.ScaleView.Zoomable = true;
chart1.ChartAreas["Default"].AxisY.ScaleView.Zoomable = true;
//Set automatic scrolling
chart1.ChartAreas["Default"].CursorX.AutoScroll = true;
chart1.ChartAreas["Default"].CursorY.AutoScroll = true;
...
Ich versuchte dies und es ist nichts passiert, kein Zoomen und kein scrollen. Ich habe versucht, zwei Dinge:
-
In Form1.Designer.cs habe ich, dass Informationen in das Diagramm.
chartArea1.Name = "ChartArea1"; chartArea1.CursorX.AutoScroll = true; chartArea1.CursorY.AutoScroll = true; chartArea1.AxisX.ScaleView.Zoomable = true; chartArea1.AxisY.ScaleView.Zoomable = true; this.chart1.ChartAreas.Add(chartArea1); this.chart1.Cursor = System.Windows.Forms.Cursors.Cross; legend1.Name = "Legend1"; this.chart1.Legends.Add(legend1); this.chart1.Location = new System.Drawing.Point(297, 62); this.chart1.Name = "chart1"; series1.ChartArea = "ChartArea1"; series1.Legend = "Legend1"; series1.Name = "Series1"; this.chart1.Series.Add(series1); this.chart1.Size = new System.Drawing.Size(963, 668); this.chart1.TabIndex = 6; this.chart1.Text = "chart1";
-
Ich versucht, um es direkt in den Konstruktor Form1.cs.
Vielleicht ist es wichtig zu erwähnen, dass ich mit OpenFileDialog, um das hinzufügen von Daten zu der Serie:
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
Stream fileStream = null;
OpenFileDialog fDialog = new OpenFileDialog();
fDialog.Title = "Open File..";
//First the description of the file separated by "|"
fDialog.Filter = "((ASC files)| *.asc";
fDialog.InitialDirectory = @"C:\";
//Show Messagebox if the file was loaded (Source: MSDN - FileDialog.FilterProperty)
if (fDialog.ShowDialog() == DialogResult.OK)
{
MessageBox.Show("The File was loaded successfully.");
try
{
if ((fileStream = fDialog.OpenFile()) != null)
{
using (fileStream)
{
//Insert code for reading the stream here.
Spectrum newSpectrum = new Spectrum(chart1.Series.Count, fDialog.FileName,
fDialog.SafeFileName, DataHandler.readSpectrumFromFile(fileStream));
addSpectrumToView(newSpectrum);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
Jeder Rat ist willkommen, danke im Voraus,
BC++
InformationsquelleAutor | 2012-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben einen Blick hier: http://archive.msdn.microsoft.com/mschart Es gibt ein Beispiel, gibt es die nicht Zoomen/scrollen und vieles, vieles mehr! 🙂
Der link ist down. Es ist ratsam, nicht einfach nur links, sondern Auszüge zu.
InformationsquelleAutor Faraday
Ich glaube, Sie waren wirklich auf der Suche nach diesem:
in Verbindung mit dem, was Sie bereits haben, sollte das gut funktionieren, die sollte so Aussehen:
So öffnen bereits in den zoom-Modus?
InformationsquelleAutor Zach Baker
Damit Sie leicht Zoomen, fügen Sie eine trackbar und es verwenden, um zu vergrößern:
"maximium - Wert" ist es so, dass je höher der trackbar-Wert, desto weniger Punkte dargestellt werden (näher Zoomen)
und stellen Sie sicher, dass Sie im designer die 'Diagramm1->ChartAreas->Achsen->(je Achse)->scaleview->zoomable' ist auf true gesetzt
Scroll-bar wird normalerweise angezeigt, wenn ein Datenpunkt übersteigt die scaleview Größe der Achse, wenn es eingestellt wurde (scrollen funktioniert nicht wirklich zuverlässig, wenn Sie Links auf 'auto'), wenn es nicht, legen Sie es, wenn eine scrollbar erscheint nicht, eine trackbar können noch einmal verwendet werden:
Stellen Sie sicher, dass Sie die "Maximalen" in der trackbars eine schöne hohe Zahl (z.B. 5000) und "Wert" zu dem, was Sie Wunsch es zu laden an.
Haben noch zu bemerken, zu viel von einem Unterschied zwischen "trackBar_Scroll" und "trackBar_ValueChanged", außer "ValueChanged" funktioniert, wenn die trackbar bewegt wird, die durch das Programm oder Mausklick des Benutzers, in der Erwägung, dass "Scoll" funktioniert nur, wenn bewegt der Benutzer die Maus klicken.
Ich etwas verpasst?
InformationsquelleAutor RogueBudz
Meinen Nutzern mag die standard-Verhalten des mschart-Zoomen und scrollen. Das ist, warum ich implementieren einen Maus-basiertes Zoomen/scrollen, verwenden Sie ziehen und Mausrad auf Achsen.
Der source code ist hier: https://bitbucket.org/controlbreak/mschartfriend
Es ist sehr einfach und kurz, können Sie es sehr schnell, wenn Sie brauchen.
InformationsquelleAutor Larry