void lbSeriesType_SelectedIndexChanged(object sender, RoutedEventArgs e) { SeriesTypeItem item = lbSeriesType.SelectedItem as SeriesTypeItem; if (item != null) { FinancialSeries2D series = Activator.CreateInstance(item.SeriesType) as FinancialSeries2D; if (series != null) { series.Label = new SeriesLabel(); DataTemplate labelTemplate = chart.Resources["labelTemplate"] as DataTemplate; if (labelTemplate != null) { series.Label.ElementTemplate = labelTemplate; } series.AnimationAutoStartMode = AnimationAutoStartMode.SetStartState; AddPoint(series, 1, 1.1, 2.9, 2.7, 1.6); AddPoint(series, 2, 1.9, 2.6, 2.4, 2.1); AddPoint(series, 3, 0.7, 2.4, 1.3, 2.1); AddPoint(series, 4, 1.8, 2.8, 2.4, 1.9); AddPoint(series, 5, 2.1, 3.4, 2.3, 3.1); AddPoint(series, 6, 2.2, 3.2, 3.0, 2.6); AddPoint(series, 7, 1.4, 2.7, 2.3, 2.5); AddPoint(series, 8, 2.1, 3.6, 3.2, 2.7); AddPoint(series, 9, 1.2, 3.1, 1.6, 2.6); AddPoint(series, 10, 2.7, 4.1, 3.4, 4.0); chart.Diagram.Series.Clear(); chart.Diagram.Series.Add(series); if (!loading) { chart.Animate(); } } } }
void lbSeriesType_SelectedIndexChanged(object sender, RoutedEventArgs e) { SeriesTypeItem item = lbSeriesType.SelectedItem as SeriesTypeItem; if (item != null) { FillSeries(Activator.CreateInstance(item.SeriesType) as MarkerSeries2D); } }
void UpdateSeries() { SeriesTypeItem seriesTypeItem = cbSeriesTypes.SelectedItem as SeriesTypeItem; if (seriesTypeItem != null) { chart.BeginInit(); try { chart.Diagram = (Diagram)Activator.CreateInstance(seriesTypeItem.DiagramType); for (int i = 0; i < seriesTypeItem.SeriesCount; i++) { Series series = (Series)Activator.CreateInstance(seriesTypeItem.SeriesType); if (loading) { series.AnimationAutoStartMode = AnimationAutoStartMode.SetStartState; } series.Label = new SeriesLabel(); UpdateSeries(series, i); ISupportStackedGroup supportStackedGroup = series as ISupportStackedGroup; if (supportStackedGroup != null) { supportStackedGroup.StackedGroup = i % 2; } ISupportTransparency supportTransparency = series as ISupportTransparency; if (supportTransparency != null) { supportTransparency.Transparency = 0.3; } series.LabelsVisibility = true; series.Label.ResolveOverlappingMode = ResolveOverlappingMode.Default; chart.Diagram.Series.Add(series); } } finally { chart.EndInit(); } } }
void ChangeDiagram(SeriesTypeItem item) { if (item == null) { return; } chart.Diagram = (Diagram)Activator.CreateInstance(item.DiagramType); bool isAreaFullStackedSeries = false; Axis axisX = null, axisY = null; XYDiagram2D diagram2D = chart.Diagram as XYDiagram2D; if (diagram2D != null) { chart.Legend.HorizontalPosition = HorizontalPosition.RightOutside; diagram2D.AxisX = new AxisX2D(); diagram2D.AxisY = new AxisY2D(); axisX = diagram2D.AxisX; axisY = diagram2D.AxisY; isAreaFullStackedSeries = item.SeriesType == typeof(AreaFullStackedSeries2D); } else { chart.Legend.HorizontalPosition = HorizontalPosition.Right; XYDiagram3D diagram3D = chart.Diagram as XYDiagram3D; if (diagram3D != null) { diagram3D.AxisX = new AxisX3D(); diagram3D.AxisY = new AxisY3D(); axisX = diagram3D.AxisX; axisY = diagram3D.AxisY; diagram3D.SeriesPadding = 0.5; diagram3D.SeriesDistance = 1.5; isAreaFullStackedSeries = item.SeriesType == typeof(AreaFullStackedSeries3D); } } if (axisX != null) { axisX.Label = new AxisLabel() { TextPattern = "{A:m}" }; } if (axisY != null) { if (isAreaFullStackedSeries) { axisY.Label = new AxisLabel() { TextPattern = "{VP:P0}" } } ; else { axisY.Title = new AxisTitle(); axisY.Title.Content = "Number of visitors"; } } Series politicsSeries = (Series)Activator.CreateInstance(item.SeriesType); politicsSeries.DisplayName = "Politics"; politicsSeries.ValueDataMember = "Politics"; PrepareSeriesAnimation(politicsSeries, 0); Series entertainmentSeries = (Series)Activator.CreateInstance(item.SeriesType); entertainmentSeries.DisplayName = "Entertainment"; entertainmentSeries.ValueDataMember = "Entertainment"; PrepareSeriesAnimation(entertainmentSeries, 1); Series travelSeries = (Series)Activator.CreateInstance(item.SeriesType); travelSeries.DisplayName = "Travel"; travelSeries.ValueDataMember = "Travel"; PrepareSeriesAnimation(travelSeries, 2); chart.Diagram.Series.AddRange(new Series[] { politicsSeries, entertainmentSeries, travelSeries }); foreach (Series series in chart.Diagram.Series) { ISupportTransparency supportTransparency = series as ISupportTransparency; if (supportTransparency != null) { supportTransparency.Transparency = 0.5; } series.Label = new SeriesLabel(); if (isAreaFullStackedSeries) { series.Label.TextPattern = "{VP:P0}"; } series.LabelsVisibility = cheLabelsVisible.IsChecked.Value; series.Label.ResolveOverlappingMode = ResolveOverlappingMode.Default; series.ArgumentScaleType = ScaleType.DateTime; series.ArgumentDataMember = "Date"; series.DataSource = dataSource; } }