Exemple #1
0
 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;
                    }
                ));
        }