private void Window_Loaded(object sender, RoutedEventArgs e) { if (!_dataLoaded) { serial1.Graphs.Clear(); for (int i = 0; i < titles.Length; i++) { AmCharts.Windows.QuickCharts.LineGraph line = new AmCharts.Windows.QuickCharts.LineGraph() { ValueMemberPath = "Intensities[" + i + "]", Title = titles[i] }; serial1.Graphs.Add(line); } serial1.DataSource = data; serial1.MinWidth = 600 + longestName * 6; _dataLoaded = true; } }
public void ShowTestResults() { //TODO Display Results of the Test WriteHistoryToFile(UserDataPath + UserFileName); //NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD C.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { C.Children.Remove(MenuButton); } )); //NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD ChartCanvas.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { ChartCanvas.Children.Remove(LG); } )); ////NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD //LineGraph.Dispatcher.Invoke( // System.Windows.Threading.DispatcherPriority.Normal, // new Action<PointCollection>( // delegate(PointCollection Acc) // { // LineGraph.SetPointLocations(DP.AccuracyTotalvsTime, 0.0); // } // ), // DataPoints.AccuracyErrorvsDifficulty.Clone() //); //NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD LG.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { ArrayList Metrics = new ArrayList(); Metrics.AddRange(ReadHistoryFromFile(UserDataPath + UserFileName)); ChartData Points = new ChartData(); Points = CalculateAccuracyChartPoints(Metrics); LG = new AmCharts.Windows.QuickCharts.LineGraph(); LG.SetPointLocations(Points.AccuracyTotalvsTime, 0.0); LG.Background = new System.Windows.Media.SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0xFF, 0xFF)); LG.Brush = new System.Windows.Media.SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0x00, 0xFF)); LG.BorderBrush = new System.Windows.Media.SolidColorBrush(Color.FromArgb(0xFF, 0xFF, 0xFF, 0x00)); Canvas.SetLeft(LG, 0.0); Canvas.SetTop(LG, 0.0); LG.Title = "Stuff"; LG.Foreground = new System.Windows.Media.SolidColorBrush(Color.FromArgb(0xFF, 0x00, 0xFF, 0xFF)); LG.Visibility = System.Windows.Visibility.Visible; LG.Render(); } )//, (Object) (DataPoints.AccuracyTotalvsDifficulty) ); ////NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD //ColumnGraph.Dispatcher.Invoke( // System.Windows.Threading.DispatcherPriority.Normal, // new Action<ChartData>( // delegate(ChartData DP) // { // //ColumnGraph.SetPointLocations(DP.StatusTotalvsPatternNotes, 0.0); // } // ), // DataPoints //); ////NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD //HistoryChart.Dispatcher.Invoke( // System.Windows.Threading.DispatcherPriority.Normal, // new Action( // delegate() // { // HistoryChart.DataSource = DataPoints.AccuracyTotalvsTime; // } // )); ////NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD //GapPerformance.Dispatcher.Invoke( // System.Windows.Threading.DispatcherPriority.Normal, // new Action<ChartData>( // delegate(ChartData DP) // { // GapPerformance.DataSource = DP.StatusTotalvsPatternNotes; // } // ), // DataPoints //); //NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD TotAccScr.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { TotAccScr.Content = "" + ((PatternMetric)PatternMetrics[PatternMetrics.Count - 1]).PatternAccuracyTotal + "%"; } )); //NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD ErrAccScr.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { ErrAccScr.Content = "" + ((PatternMetric)PatternMetrics[PatternMetrics.Count - 1]).PatternAccuracyError + "%"; } )); //NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD LatAccScr.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { LatAccScr.Content = "" + ((PatternMetric)PatternMetrics[PatternMetrics.Count - 1]).PatternAccuracyLate + "%"; } )); //NECESSARY CRAP IF YOU WANT TO MODIFY ANY CONTROL THAT'S OWNED BY THE MAIN THREAD ChartCanvas.Dispatcher.Invoke( System.Windows.Threading.DispatcherPriority.Normal, new Action( delegate() { //LG.Render(); ChartCanvas.Children.Add(MenuButton); ChartCanvas.Children.Add(LG); ChartCanvas.Visibility = System.Windows.Visibility.Visible; } )); }