Ejemplo n.º 1
0
        public MainWindow()
        {
            InitializeComponent();

            generator = new DataGenerator();
            this.lineChart.LayoutUpdated += PerformanceDemo_LayoutUpdated;
            CompositionTarget.Rendering  += CompositionTarget_Rendering;
            List <string> colorNames = new List <string>();
            Type          colors     = typeof(Colors);

            PropertyInfo[] colorInfo = colors.GetProperties(BindingFlags.Public | BindingFlags.Static);

            foreach (PropertyInfo info in colorInfo)
            {
                colorNames.Add(info.Name);
            }

            for (int i = 0; i < 500; i++)
            {
                FastLineBitmapSeries bitmapSeries = new FastLineBitmapSeries()
                {
                    XBindingPath = "Date",
                    YBindingPath = "Value"
                };

                bitmapSeries.Interior = new SolidColorBrush((Color)ColorConverter.ConvertFromString(colorNames[i % (colorNames.Count - 1)]));

                lineChart.Series.Add(bitmapSeries);
            }
        }
Ejemplo n.º 2
0
        private void Chart_Loaded(object sender, RoutedEventArgs e)
        {
            generator = (sender as SfChart).DataContext as DataGenerator;
            List <string> colorNames = new List <string>();
            Type          colors     = typeof(Colors);

            PropertyInfo[] colorInfo = colors.GetProperties(BindingFlags.Public | BindingFlags.Static);

            foreach (PropertyInfo info in colorInfo)
            {
                colorNames.Add(info.Name);
            }

            for (int i = 0; i < 500; i++)
            {
                FastLineBitmapSeries bitmapSeries = new FastLineBitmapSeries()
                {
                    XBindingPath = "Date",
                    YBindingPath = "Value"
                };

                bitmapSeries.Interior = new SolidColorBrush((Color)ColorConverter.ConvertFromString(colorNames[i % (colorNames.Count - 1)]));

                if (chart != null)
                {
                    chart.Series.Add(bitmapSeries);
                }
            }
        }
Ejemplo n.º 3
0
        private void OnComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ComboBox comboBox = sender as ComboBox;

            // Trackball is used only for the Fast Range Area Series.
            if (financialChart.Behaviors.Contains(tackballBehavior))
            {
                financialChart.Behaviors.Remove(tackballBehavior);
            }

            if (comboBox.SelectedIndex == 3 && financialChart != null)
            {
                BarSeries.Visibility                   = Visibility.Collapsed;
                financialChart.Visibility              = Visibility.Visible;
                financialChart.PrimaryAxis.Header      = "Date";
                financialChart.SecondaryAxis.Header    = "Stock Price";
                financialChart.PrimaryAxis.LabelFormat = "MMM/dd";
                FastColumnBitmapSeries hiLoSeries = new FastColumnBitmapSeries();
                hiLoSeries.VisibilityOnLegend = Visibility.Collapsed;
                hiLoSeries.XBindingPath       = "Date";
                hiLoSeries.YBindingPath       = "Price";
                hiLoSeries.ItemsSource        = viewModel.List;
                hiLoSeries.ShowTooltip        = true;
                hiLoSeries.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoSeries.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                financialChart.PrimaryAxis.ZoomFactor   = 1;
                financialChart.SecondaryAxis.ZoomFactor = 1;
                financialChart.Series.Clear();
                financialChart.Series.Add(hiLoSeries);
            }
            else if (comboBox.SelectedIndex == 1 && financialChart != null)
            {
                BarSeries.Visibility                   = Visibility.Collapsed;
                financialChart.Visibility              = Visibility.Visible;
                financialChart.PrimaryAxis.Header      = "Date";
                financialChart.SecondaryAxis.Header    = "Stock Price";
                financialChart.PrimaryAxis.LabelFormat = "MMM/dd";
                FastLineBitmapSeries hiLoSeries = new FastLineBitmapSeries();
                hiLoSeries.VisibilityOnLegend = Visibility.Collapsed;
                hiLoSeries.XBindingPath       = "Date";
                hiLoSeries.YBindingPath       = "Price";
                hiLoSeries.ItemsSource        = viewModel.LineData;
                hiLoSeries.ShowTooltip        = false;
                hiLoSeries.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoSeries.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                financialChart.PrimaryAxis.ZoomFactor   = 1;
                financialChart.SecondaryAxis.ZoomFactor = 1;
                financialChart.Series.Clear();
                financialChart.Series.Add(hiLoSeries);
            }
            else if (comboBox.SelectedIndex == 2 && financialChart != null)
            {
                BarSeries.Visibility      = Visibility.Collapsed;
                financialChart.Visibility = Visibility.Visible;
                financialChart.Behaviors.Add(tackballBehavior);
                financialChart.PrimaryAxis.Header      = "Date";
                financialChart.PrimaryAxis.LabelFormat = "MMM/dd";
                financialChart.SecondaryAxis.Header    = "Stock Price";
                FastRangeAreaBitmapSeries fastRangeAreaBitmapSeries = new FastRangeAreaBitmapSeries();
                fastRangeAreaBitmapSeries.VisibilityOnLegend = Visibility.Collapsed;
                fastRangeAreaBitmapSeries.XBindingPath       = "Date";
                fastRangeAreaBitmapSeries.High                   = "Stock1";
                fastRangeAreaBitmapSeries.Low                    = "Stock2";
                fastRangeAreaBitmapSeries.ItemsSource            = viewModel.RangeData;
                fastRangeAreaBitmapSeries.TrackBallLabelTemplate = this.grid.Resources["rangeSeriesTrackBallLabel"] as DataTemplate;
                financialChart.PrimaryAxis.ZoomFactor            = 1;
                financialChart.SecondaryAxis.ZoomFactor          = 1;
                financialChart.Series.Clear();
                financialChart.Series.Add(fastRangeAreaBitmapSeries);
            }
            else if (comboBox.SelectedIndex == 0 && financialChart != null)
            {
                BarSeries.Visibility                    = Visibility.Collapsed;
                financialChart.Visibility               = Visibility.Visible;
                financialChart.PrimaryAxis.Header       = "Date";
                financialChart.SecondaryAxis.Header     = "Stock Price";
                hiLoOpenCloseBitmap1                    = new FastHiLoOpenCloseBitmapSeries();
                hiLoOpenCloseBitmap1.VisibilityOnLegend = Visibility.Collapsed;
                financialChart.PrimaryAxis.LabelFormat  = "MMM/dd";
                hiLoOpenCloseBitmap1.XBindingPath       = "TimeStamp";
                hiLoOpenCloseBitmap1.High               = "High";
                hiLoOpenCloseBitmap1.Low                = "Low";
                hiLoOpenCloseBitmap1.Open               = "Open";
                hiLoOpenCloseBitmap1.Close              = "Last";
                hiLoOpenCloseBitmap1.ItemsSource        = viewModel.HiloViewModel;
                hiLoOpenCloseBitmap1.ShowTooltip        = true;
                hiLoOpenCloseBitmap1.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoOpenCloseBitmap1.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                hiLoOpenCloseBitmap1.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoOpenCloseBitmap1.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                financialChart.Series.Clear();
                financialChart.PrimaryAxis.ZoomFactor   = 1;
                financialChart.SecondaryAxis.ZoomFactor = 1;
                financialChart.Series.Add(hiLoOpenCloseBitmap1);
            }
            else if (comboBox.SelectedIndex == 8 && financialChart != null)
            {
                BarSeries.Visibility      = Visibility.Collapsed;
                financialChart.Visibility = Visibility.Visible;
                FastHiLoBitmapSeries hiLoOpenClose = new FastHiLoBitmapSeries();
                hiLoOpenClose.VisibilityOnLegend       = Visibility.Collapsed;
                financialChart.PrimaryAxis.Header      = "Date";
                financialChart.SecondaryAxis.Header    = "Stock Price";
                financialChart.PrimaryAxis.LabelFormat = "MMM/dd";
                hiLoOpenClose.XBindingPath             = "TimeStamp";
                hiLoOpenClose.High        = "High";
                hiLoOpenClose.Low         = "Low";
                hiLoOpenClose.ItemsSource = viewModel.HiloViewModel;
                hiLoOpenClose.ShowTooltip = true;
                financialChart.Series.Clear();
                financialChart.PrimaryAxis.ZoomFactor   = 1;
                financialChart.SecondaryAxis.ZoomFactor = 1;
                financialChart.Series.Add(hiLoOpenClose);
                hiLoOpenClose.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoOpenClose.SetValue(ChartTooltip.VerticalOffsetProperty, size);
            }
            else if (comboBox.SelectedIndex == 4 && financialChart != null)
            {
                financialChart.Visibility = Visibility.Collapsed;
                BarSeries.Visibility      = Visibility.Visible;
            }
            else if (comboBox.SelectedIndex == 5 && financialChart != null)
            {
                BarSeries.Visibility      = Visibility.Collapsed;
                financialChart.Visibility = Visibility.Visible;
                financialChart.PrimaryAxis.LabelFormat = "MMM/dd";
                financialChart.PrimaryAxis.Header      = "Date";
                financialChart.SecondaryAxis.Header    = "Stock Price";
                FastStepLineBitmapSeries hiLoSeries = new FastStepLineBitmapSeries();
                hiLoSeries.VisibilityOnLegend = Visibility.Collapsed;
                hiLoSeries.XBindingPath       = "Date";
                hiLoSeries.YBindingPath       = "Price";
                hiLoSeries.ItemsSource        = viewModel.List;
                hiLoSeries.ShowTooltip        = true;
                hiLoSeries.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoSeries.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                financialChart.PrimaryAxis.ZoomFactor   = 1;
                financialChart.SecondaryAxis.ZoomFactor = 1;
                financialChart.Series.Clear();
                financialChart.Series.Add(hiLoSeries);
            }
            else if (comboBox.SelectedIndex == 6 && financialChart != null)
            {
                BarSeries.Visibility                   = Visibility.Collapsed;
                financialChart.Visibility              = Visibility.Visible;
                financialChart.PrimaryAxis.Header      = "Date";
                financialChart.PrimaryAxis.LabelFormat = "MMM/dd";
                financialChart.SecondaryAxis.Header    = "Stock Price";
                FastScatterBitmapSeries hiLoSeries = new FastScatterBitmapSeries();
                hiLoSeries.VisibilityOnLegend = Visibility.Collapsed;
                hiLoSeries.XBindingPath       = "Date";
                hiLoSeries.YBindingPath       = "Price";
                hiLoSeries.ItemsSource        = viewModel.LineData;
                hiLoSeries.ShowTooltip        = true;
                hiLoSeries.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoSeries.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                financialChart.PrimaryAxis.ZoomFactor   = 1;
                financialChart.SecondaryAxis.ZoomFactor = 1;
                financialChart.Series.Clear();
                financialChart.Series.Add(hiLoSeries);
            }
            else if (comboBox.SelectedIndex == 7 && financialChart != null)
            {
                BarSeries.Visibility                   = Visibility.Collapsed;
                financialChart.Visibility              = Visibility.Visible;
                financialChart.PrimaryAxis.Header      = "Date";
                financialChart.SecondaryAxis.Header    = "Stock Price";
                financialChart.PrimaryAxis.LabelFormat = "MMM/dd";
                FastCandleBitmapSeries hiLoOpenClose = new FastCandleBitmapSeries();
                hiLoOpenClose.VisibilityOnLegend = Visibility.Collapsed;
                hiLoOpenClose.XBindingPath       = "TimeStamp";
                hiLoOpenClose.High        = "High";
                hiLoOpenClose.Low         = "Low";
                hiLoOpenClose.Open        = "Open";
                hiLoOpenClose.Close       = "Last";
                hiLoOpenClose.ItemsSource = viewModel.HiloViewModel1;
                hiLoOpenClose.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                hiLoOpenClose.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                hiLoOpenClose.ShowTooltip = true;
                financialChart.Series.Clear();
                financialChart.Series.Add(hiLoOpenClose);
            }
            else if (comboBox.SelectedIndex == 9 && financialChart != null)
            {
                BarSeries.Visibility                   = Visibility.Collapsed;
                financialChart.Visibility              = Visibility.Visible;
                financialChart.DataContext             = new FastStackingColumnChartViewModel();
                financialChart.PrimaryAxis.LabelFormat = "";
                financialChart.PrimaryAxis.Header      = "Product Id";
                financialChart.SecondaryAxis.Header    = "Stock";
                FastStackingColumnBitmapSeries stackingSeries = new FastStackingColumnBitmapSeries();
                stackingSeries.VisibilityOnLegend = Visibility.Collapsed;
                stackingSeries.XBindingPath       = "CountryName";
                stackingSeries.YBindingPath       = "GoldMedals";
                stackingSeries.ItemsSource        = (financialChart.DataContext as FastStackingColumnChartViewModel).MedalDetails;
                stackingSeries.ShowTooltip        = true;
                stackingSeries.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                stackingSeries.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                FastStackingColumnBitmapSeries stackingSeries1 = new FastStackingColumnBitmapSeries();
                stackingSeries1.VisibilityOnLegend = Visibility.Collapsed;
                stackingSeries1.XBindingPath       = "CountryName";
                stackingSeries1.YBindingPath       = "SilverMedals";
                stackingSeries1.ItemsSource        = (financialChart.DataContext as FastStackingColumnChartViewModel).MedalDetails;
                stackingSeries1.ShowTooltip        = true;
                stackingSeries1.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                stackingSeries1.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                FastStackingColumnBitmapSeries stackingSeries2 = new FastStackingColumnBitmapSeries();
                stackingSeries2.VisibilityOnLegend = Visibility.Collapsed;
                stackingSeries2.XBindingPath       = "CountryName";
                stackingSeries2.YBindingPath       = "BronzeMedals";
                stackingSeries2.ItemsSource        = (financialChart.DataContext as FastStackingColumnChartViewModel).MedalDetails;
                stackingSeries2.ShowTooltip        = true;
                stackingSeries2.SetValue(ChartTooltip.VerticalAlignmentProperty, VerticalAlignment.Top);
                stackingSeries2.SetValue(ChartTooltip.VerticalOffsetProperty, size);
                financialChart.PrimaryAxis.ZoomFactor   = 1;
                financialChart.SecondaryAxis.ZoomFactor = 1;
                financialChart.Series.Clear();
                financialChart.Series.Add(stackingSeries);
                financialChart.Series.Add(stackingSeries1);
                financialChart.Series.Add(stackingSeries2);
            }
        }