Esempio n. 1
0
            public void ReloadSeries()
            {
                var views = items.Where(p => p.States.IsStateDoneWithDate(StateEnum.Finished)).ToList();

                Series.Clear();
                Counts.Clear();
                foreach (var t in MovieViewModel.TypesDict)
                {
                    int c      = 0;
                    var points = new List <DateTimePoint>();
                    for (var dt = FirstDay; dt <= LastDay; dt = dt.AddDays(1))
                    {
                        var count = views.Count(p => p.FinishDate == dt && p.Type == t.Key);
                        points.Add(
                            new DateTimePoint()
                        {
                            DateTime = dt,
                            Value    = count
                        });
                        c = c + count;
                    }

                    var a = new StackedColumnSeries()
                    {
                        Values = new ChartValues <DateTimePoint>(points),
                        Title  = t.Value,
                        Fill   = ConvertFuncs.TypeToBrushFunc(t.Key)
                    };
                    Series.Add(a);
                    Counts.Add(new CountClass(c, t.Key, t.Value));
                }
                Totals = Counts.Sum(p => p.Count);
                Reloaded?.Invoke(null, EventArgs.Empty);
            }
Esempio n. 2
0
            public void ReloadSeries()
            {
                var views = items.Where(p => p.IsFinishedWithDate).ToList();

                Series.Clear();
                Counts.Clear();
                foreach (var t in MovieViewModel.TypesDict)
                {
                    int c      = 0;
                    var points = new List <DataModel>();
                    for (var dt = 2012; dt <= DateTime.Today.Year; dt = dt + 1)
                    {
                        var count = views.Count(p => p.FinishDate.Value.Year == dt && p.Type == t.Key);
                        points.Add(
                            new DataModel()
                        {
                            Year  = dt,
                            Count = count
                        });
                        c = c + count;
                    }
                    var a = new StackedColumnSeries()
                    {
                        Values = new ChartValues <DataModel>(points),
                        Title  = t.Value,
                        Fill   = ConvertFuncs.TypeToBrushFunc(t.Key)
                    };
                    Series.Add(a);
                    Counts.Add(new CountClass(c, t.Key, t.Value));
                }
                Totals = Counts.Sum(p => p.Count);
                Reloaded?.Invoke(null, EventArgs.Empty);
            }
Esempio n. 3
0
        /// <summary>
        /// Builds an overview A1-Mix graph for the user to add to a graph
        /// </summary>
        /// <param name="project"></param>
        /// <returns></returns>
        public static SeriesCollection BuildBarGraph(CarboProject project)
        {
            List <CarboDataPoint> pointCollection = new List <CarboDataPoint>();

            // get the current Project
            pointCollection = project.getPhaseTotals();

            SeriesCollection result = new SeriesCollection();

            //Build series

            foreach (CarboDataPoint pont in pointCollection)
            {
                StackedColumnSeries series = new StackedColumnSeries
                {
                    Values = new ChartValues <double>
                    {
                        Math.Round((pont.Value / 1000), 2),
                    },
                    StackMode  = StackMode.Values,
                    DataLabels = true,
                    Title      = pont.Name
                };

                result.Add(series);
            }

            return(result);
        }
Esempio n. 4
0
        public void getCartesianChart()
        {
            //cartesianChart2 题目提交分类统计
            cartesianChart1.Series.Clear();
            for (int i = 0; i < 4; ++i)
            {
                StackedColumnSeries stackedColumnSeries = new StackedColumnSeries();
                stackedColumnSeries.StackMode  = StackMode.Values;
                stackedColumnSeries.DataLabels = false;
                stackedColumnSeries.Title      = OperateForm.resultName[i];
                stackedColumnSeries.Values     = new ChartValues <double>();
                for (int j = 0; j < OperateForm.problemCnt; ++j)
                {
                    try
                    {
                        if (OperateForm.result[i] != 4)
                        {
                            stackedColumnSeries.Values.Add(-double.Parse((DBTool.getTotResultByResultAndNum(OperateForm.result[i], j)).ToString()));
                        }
                        else
                        {
                            stackedColumnSeries.Values.Add(double.Parse((DBTool.getTotResultByResultAndNum(OperateForm.result[i], j)).ToString()));
                        }
                    }
                    catch (Exception ex)
                    {
                        print("网络连接中断!");
                        Application.Exit();
                    }
                }
                cartesianChart1.Series.Add(stackedColumnSeries);
            }

            string[] labels2 = new string[OperateForm.problemCnt];
            for (int i = 0; i < OperateForm.problemCnt; ++i)
            {
                labels2[i] = OperateForm.charMp[i];
            }
            cartesianChart1.AxisX.Clear();
            cartesianChart1.AxisX.Add(new Axis
            {
                Labels    = labels2,
                Separator = new Separator // force the separator step to 1, so it always display all labels
                {
                    Step      = 1,
                    IsEnabled = false //disable it to make it invisible.
                },
                LabelsRotation = 0
            });

            cartesianChart1.AxisY.Clear();
            cartesianChart1.AxisY.Add(new Axis
            {
                LabelFormatter = value => value + ""
            });
        }
Esempio n. 5
0
        public SeriesCollection ToStackedColumnSeriesCollection()
        {
            SeriesCollection seriesCollection = new SeriesCollection();

            for (int r = 0; r < SeriesD.Count; r++)
            {
                StackedColumnSeries series = new StackedColumnSeries();
                ConfigureSeries(series, r);

                seriesCollection.Add(series);
            }

            return(seriesCollection);
        }
Esempio n. 6
0
        /// <summary>
        /// Returns a comaring bar chart showing the total values of the project
        /// </summary>
        /// <param name="carboLifeProject"></param>
        /// <param name="projectListToCompareTo"></param>
        /// <returns></returns>
        internal static SeriesCollection BuildComparingTotalsBarGraph(CarboProject project, List <CarboProject> projectListToCompareTo)
        {
            SeriesCollection result = new SeriesCollection();

            //Full list to compare to:
            List <CarboProject> fullProjectListToCompareTo = new List <CarboProject>();

            //bool hasCurrent = false;

            if (project != null)
            {
                fullProjectListToCompareTo.Add(project);
                //hasCurrent = true;
            }
            foreach (CarboProject projectToCompare in projectListToCompareTo)
            {
                if (projectToCompare != null)
                {
                    fullProjectListToCompareTo.Add(projectToCompare);
                }
            }
            //The list has been created
            List <List <CarboDataPoint> > pointList = new List <List <CarboDataPoint> >();

            foreach (CarboProject dp in fullProjectListToCompareTo)
            {
                List <CarboDataPoint> listofPoints = dp.getPhaseTotals();
                pointList.Add(listofPoints);
            }

            try
            {
                /*
                 * DataTable dt = new DataTable();
                 *
                 * dt.Columns.Add("A1-A3");
                 * dt.Columns.Add("A4");
                 * dt.Columns.Add("A5");
                 * dt.Columns.Add("B1B7");
                 * dt.Columns.Add("C1-C4");
                 * dt.Columns.Add("D");
                 * dt.Columns.Add("Mix");
                 * dt.Columns.Add("Add");
                 * dt.Columns.Add("B4");
                 *
                 *
                 * foreach (List<CarboDataPoint> pr in pointList)
                 * {
                 *  DataRow dr = dt.NewRow();
                 *  for (int i = 0; i < pr.Count - 1; i++)
                 *  {
                 *      dr[i] = pr[i].Value / 1000;
                 *  }
                 *  dt.Rows.Add(dr);
                 * }
                 *
                 * 0  CarboDataPoint cb_A1A3 = new CarboDataPoint("A1-A3", 0);
                 * 1 CarboDataPoint cb_A4 = new CarboDataPoint("A4", 0);
                 * 2 CarboDataPoint cb_A5 = new CarboDataPoint("A5(Material)",0);
                 * 3 CarboDataPoint cb_A5Global = new CarboDataPoint("A5(Global)", this.A5Global);
                 * 4 CarboDataPoint cb_B1B5 = new CarboDataPoint("B1-B7", 0);
                 * 5 CarboDataPoint cb_C1C4 = new CarboDataPoint("C1-C4", 0);
                 * 6 CarboDataPoint cb_C1Global = new CarboDataPoint("C1(Global)", this.C1Global);
                 * 7 CarboDataPoint cb_D = new CarboDataPoint("D", 0);
                 * 8 CarboDataPoint Added = new CarboDataPoint("Additional", 0);
                 *
                 *
                 */

                //loop though
                // i is nr type of information extracted
                for (int i = 0; i < 9; i++)
                {
                    StackedColumnSeries newSeries = new StackedColumnSeries();

                    ChartValues <double> Values = new ChartValues <double>();

                    //get all Values from all loaded projects
                    foreach (List <CarboDataPoint> dataPointList in pointList)
                    {
                        Values.Add(Math.Round((dataPointList[i].Value / 1000), 1));
                    }

                    newSeries.Title      = pointList[0][i].Name;
                    newSeries.Values     = Values;
                    newSeries.StackMode  = StackMode.Values;
                    newSeries.DataLabels = true;
                    newSeries.Foreground = Brushes.Black;
                    //newSeries.Width = 100;
                    newSeries.MaxColumnWidth = 50;
                    newSeries.LabelsPosition = BarLabelPosition.Perpendicular;
                    result.Add(newSeries);
                }
            }
            catch
            {
                return(null);
            }
            return(result);
        }
Esempio n. 7
0
        public static Tuple <Axis, Axis, List <Series> > ConfigureChartByChartType(
            string SeriesChartType,
            List <string> lstBoxSelectedStringValues)
        {
            DefaultTooltip defaultTooltip = new DefaultTooltip();

            defaultTooltip.SelectionMode = TooltipSelectionMode.OnlySender;

            Axis AbscissaAxis = new Axis()
            {
                Separator = new Separator()
                {
                    Step = 1, IsEnabled = false
                },
                Title          = "Date",
                Labels         = lstBoxSelectedStringValues,
                LabelsRotation = 20,
                FontSize       = 16
            };

            Axis OrdinateAxis = new Axis()
            {
                Title          = "Time Duration (hrs)",
                FontSize       = 16,
                LabelFormatter = v => v.ToString("N0")
            };

            switch (SeriesChartType)
            {
            case "Column":
                ColumnSeries columnSeries = new ColumnSeries()
                {
                    Title      = "GeneratorOn (hrs)",
                    DataLabels = true,
                    Values     = new ChartValues <double>()
                };
                List <Series> columnSeriesList = new List <Series>();
                columnSeriesList.Add(columnSeries);

                return(new Tuple <Axis, Axis, List <Series> >(
                           OrdinateAxis,
                           AbscissaAxis,
                           columnSeriesList));

            case "Stacked Column":
                StackedColumnSeries stackedColumnSeries = new StackedColumnSeries()
                {
                    DataLabels = true,
                    Values     = new ChartValues <double>()
                };
                List <Series> stackedColumnSeriesList = new List <Series>();
                stackedColumnSeriesList.Add(stackedColumnSeries);

                return(new Tuple <Axis, Axis, List <Series> >(
                           OrdinateAxis,
                           AbscissaAxis,
                           stackedColumnSeriesList));

            case "Stacked Area":
                StackedAreaSeries stackedAreaSeries = new StackedAreaSeries()
                {
                    DataLabels = true,
                    Values     = new ChartValues <DateTimePoint>()
                };
                List <Series> stackedAreaSeriesList = new List <Series>();
                stackedAreaSeriesList.Add(stackedAreaSeries);

                return(new Tuple <Axis, Axis, List <Series> >(
                           OrdinateAxis,
                           AbscissaAxis,
                           stackedAreaSeriesList));

            case "Line":
                LineSeries lineSeries = new LineSeries()
                {
                    Title      = "GeneratorOn (hrs)",
                    DataLabels = true,
                    Values     = new ChartValues <double>()
                };
                List <Series> lineSeriesList = new List <Series>();
                lineSeriesList.Add(lineSeries);

                return(new Tuple <Axis, Axis, List <Series> >(
                           OrdinateAxis,
                           AbscissaAxis,
                           lineSeriesList));

            case "Pie":
                PieSeries pieSeries = new PieSeries()
                {
                    Title      = "GeneratorOn (hrs)",
                    DataLabels = true,
                    Values     = new ChartValues <double>()
                };
                List <Series> pieSeriesList = new List <Series>();
                pieSeriesList.Add(pieSeries);

                return(new Tuple <Axis, Axis, List <Series> >(
                           OrdinateAxis,
                           AbscissaAxis,
                           pieSeriesList));

            default:
                break;
            }
            return(null);
        }
        private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            try
            {
                dynamic selectedItem = dataGrid.SelectedItems[0];

                waterfallFlow.Children.Clear();
                Series series = new ColumnSeries();

                switch (FindElement.Settings.ChartType ?? 0)
                {
                case 0:
                    series = new ColumnSeries {
                    };
                    break;

                case 1:
                    series = new StackedColumnSeries {
                    };
                    break;

                case 2:
                    series = new LineSeries {
                    };
                    break;

                case 3:
                    series = new StepLineSeries {
                    };
                    break;

                case 4:
                    series = new StackedAreaSeries {
                    };
                    break;
                }

                getStudentScore(selectedItem.Id); // get Student scores

                //get scores merge duplicates and replace string to int
                var score = _initialCollection.GroupBy(x => new { x.Book, x.Date, x.StudentId })
                            .Select(x => new
                {
                    x.Key.StudentId,
                    x.Key.Book,
                    x.Key.Date,
                    Sum = x.Sum(y => AppVariable.EnumToNumber(y.Scores))
                }).ToArray();

                //get Book Count for generate chart
                var bookCount = score.GroupBy(x => new { x.Book })
                                .Select(g => new
                {
                    g.Key.Book
                }).ToList();

                MaterialChart _addUser;
                Control       _currentUser;

                //generate chart based on count of books
                foreach (var item in bookCount)
                {
                    _addUser     = new MaterialChart(item.Book, selectedItem.Name + " " + selectedItem.LName, getDateArray(item.Book), getScoreArray(item.Book), getAverage(item.Book), getAverageStatus(item.Book), series, AppVariable.GetBrush(FindElement.Settings.ChartColor ?? AppVariable.CHART_GREEN));
                    _currentUser = _addUser;
                    waterfallFlow.Children.Add(_currentUser);
                }

                waterfallFlow.Refresh();
            }
            catch (ArgumentNullException) { }
            catch (NullReferenceException)
            {
            }
        }
Esempio n. 9
0
        public StackedColumnSeries SetProperties(StackedColumnSeries NewSeries, DataPt Pt)
        {
            NewSeries.LabelsPosition = GetPosition((int)Pt.Label.Alignment);

            return(NewSeries);
        }
Esempio n. 10
0
        void Update()
        {
            chart.Series.Clear();
            for (int r = 0; r < dt.Rows.Count; r++)
            {
                Series CSeries;

                if (Ctype == ChartType.Chart_Type.PieChart)
                {
                    CSeries = new PieSeries();
                }
                else if (Ctype == ChartType.Chart_Type.ColumnChart)
                {
                    CSeries = new ColumnSeries();
                }
                else if (Ctype == ChartType.Chart_Type.RowChart)
                {
                    CSeries = new RowSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StackedColumnChart)
                {
                    CSeries = new StackedColumnSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StackedRowChart)
                {
                    CSeries = new StackedRowSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StackedAreaChart)
                {
                    CSeries = new StackedAreaSeries();
                }
                else if (Ctype == ChartType.Chart_Type.StepLineChart)
                {
                    CSeries = new StepLineSeries();
                }
                else
                {
                    CSeries = new LineSeries();
                }

                CSeries.Values = new ChartValues <double> {
                };
                for (int c = 0; c < dt.Columns.Count; c++)
                {
                    // Debug.WriteLine(dt.Rows[r].Field<double?>(c));
                    if (dt.Rows[r].Field <double?>(c) != null)
                    {
                        CSeries.Values.Add(dt.Rows[r].Field <double>(c));
                    }
                }//columns

                if (r < ListBox_Customization.Items.Count)
                {
                    StackPanel panel = (StackPanel)ListBox_Customization.Items[r];
                    CSeries.Title      = ((TextBox)panel.Children[0]).Text;
                    CSeries.DataLabels = (((CheckBox)panel.Children[1]).IsChecked == true);

                    double size = 10;
                    if (double.TryParse(((TextBox)panel.Children[2]).Text, out size) == false)
                    {
                        size = 10;
                    }

                    CSeries.FontSize = size;
                    CSeries.Stroke   = ((Rectangle)((StackPanel)panel.Children[3]).Children[0]).Fill;
                    double sth = 0;
                    if (double.TryParse(((TextBox)panel.Children[4]).Text, out sth))
                    {
                        CSeries.StrokeThickness = sth;
                    }

                    /*
                     * if ((((CheckBox)panel.Children[4]).IsChecked == true))
                     *  CSeries.Fill = ((Rectangle)((StackPanel)panel.Children[5]).Children[0]).Fill;
                     * else
                     *  CSeries.Fill = null;*/
                }
                else
                {
                    CSeries.Title      = "R" + r;
                    CSeries.DataLabels = true;
                }

                chart.Series.Add(CSeries);
            }//rows


            if (RB_CusColors.IsChecked == true)
            {
                ColorsCollection colorsCollection = new ColorsCollection();

                for (int i = 0; i < ListBox_Colors.Items.Count; i++)
                {
                    StackPanel stack = (StackPanel)ListBox_Colors.Items[i];
                    colorsCollection.Add(((SolidColorBrush)((Rectangle)stack.Children[0]).Fill).Color);
                }

                chart.SeriesColors = colorsCollection;
            }
            else
            {
                chart.SeriesColors = null;
            }
        }
        private async void ExcecuteLoadDataCommand()
        {
            RequestIsWorking = true;
            HttpResponseMessage resp = await Client.GetAsync(GlobalVariables.BackendServer_URL + $"/api/auswertung/steuern/Steuerart/Monate?jahrVon={jahrvon}&jahrBis={jahrbis}");

            if (resp.IsSuccessStatusCode)
            {
                ItemList = await resp.Content.ReadAsAsync <List <SteuerartMonatAuswertungModel> >();

                Labels = new string[ItemList.Count];
                IList <Betrag> werte = new List <Betrag>();
                int            index = 0;
                ItemList.ToList().ForEach(item =>
                {
                    item.Steuerarten.ToList().ForEach(steuer => {
                        var wert = werte.ToList().Find(wert => wert.Steuerart.Equals(steuer.Steuerart));
                        if (wert == null)
                        {
                            wert = new Betrag
                            {
                                Betraege  = new List <double>(),
                                Steuerart = steuer.Steuerart
                            };
                            werte.Add(wert);
                        }
                        wert.Betraege.Add(steuer.Betrag);
                    });

                    Labels[index] = item.Datum.ToString("MM.yyyy", CultureInfo.CurrentCulture);
                    index++;
                });


                StackedColumnSeries <double>[] series = new StackedColumnSeries <double> [werte.Count];
                index = 0;
                werte.ToList().ForEach(wert =>
                {
                    var StackedColoumn = new StackedColumnSeries <double>
                    {
                        Values = wert.Betraege,
                        Name   = wert.Steuerart,
                        TooltipLabelFormatter = (point) => wert.Steuerart + " " + point.PrimaryValue.ToString("N2") + "€"
                    };
                    series.SetValue(StackedColoumn, index);
                    index++;
                });



                XAxes.First().Labels = Labels;
                XAxes.First().Name   = "Monat";
                YAxes.First().Name   = "Betrag";

                Series = series;

                RaisePropertyChanged(nameof(Series));
                RaisePropertyChanged(nameof(XAxes));
                RaisePropertyChanged(nameof(YAxes));
            }
            RequestIsWorking = false;
        }
Esempio n. 12
0
        public void SetBarSeries(DataPtSet PollenDataSet, SeriesChartType ChartMode)
        {
            DataList  = PollenDataSet;
            ChartType = ChartMode;

            List <double> DbList = new List <double>();

            RowSeries           AdjacentRow = new RowSeries();
            StackedRowSeries    StackRow    = new StackedRowSeries();
            ColumnSeries        AdjacentCol = new ColumnSeries();
            StackedColumnSeries StackCol    = new StackedColumnSeries();

            StackRow.LabelsPosition    = BarLabelPosition.Parallel;
            StackCol.LabelsPosition    = BarLabelPosition.Parallel;
            AdjacentCol.LabelsPosition = BarLabelPosition.Parallel;
            StackCol.LabelsPosition    = BarLabelPosition.Parallel;

            AdjacentRow = (SetProperties(AdjacentRow, DataList.Points[0]));
            StackRow    = (SetProperties(StackRow, DataList.Points[0]));
            AdjacentCol = (SetProperties(AdjacentCol, DataList.Points[0]));
            StackCol    = (SetProperties(StackCol, DataList.Points[0]));


            switch (ChartType)
            {
            case SeriesChartType.ColumnAdjacent:
                ChartSequence = AdjacentCol;
                foreach (DataPt D in DataList.Points)
                {
                    ColumnSeries NewSeries = new ColumnSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries.LabelsPosition = BarLabelPosition.Parallel;
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.ColumnStack:
                StackCol.StackMode = StackMode.Values;
                ChartSequence      = StackCol;
                foreach (DataPt D in DataList.Points)
                {
                    StackedColumnSeries NewSeries = new StackedColumnSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.ColumnStack100:
                StackCol.StackMode = StackMode.Percentage;
                ChartSequence      = StackCol;
                foreach (DataPt D in DataList.Points)
                {
                    StackedColumnSeries NewSeries = new StackedColumnSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.BarAdjacent:
                ChartSequence = AdjacentRow;
                foreach (DataPt D in DataList.Points)
                {
                    RowSeries NewSeries = new RowSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries.LabelsPosition = BarLabelPosition.Parallel;
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.BarStack:
                StackRow.StackMode = StackMode.Values;
                ChartSequence      = StackRow;
                foreach (DataPt D in DataList.Points)
                {
                    StackedRowSeries NewSeries = new StackedRowSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;

            case SeriesChartType.BarStack100:
                StackRow.StackMode = StackMode.Percentage;
                ChartSequence      = StackRow;
                foreach (DataPt D in DataList.Points)
                {
                    StackedRowSeries NewSeries = new StackedRowSeries {
                        Values = new ChartValues <double> {
                            D.Number
                        }
                    };
                    NewSeries = SetProperties(NewSeries, D);

                    DbList.Add(D.Number);
                    ChartSeries.Add(NewSeries);
                }
                break;
            }
            ChartSequence.Values = new ChartValues <double>(DbList.ToArray());
            //Set unique properties of the control
        }
        public DashboardViewModel(Usuario modelUsuario)
        {
            ModelUsuario = modelUsuario;

            #region Información Lecciones Aprendidas
            #region Gráfica Motivo Lección aprendida
            Series = new SeriesCollection();
            List <FO_Item> listaMotivoCambio = new List <FO_Item>();
            listaMotivoCambio = DataManagerControlDocumentos.GetMotivoCambioGrafica();

            foreach (var item7 in listaMotivoCambio)
            {
                PieSeries pieSeries = new PieSeries();

                pieSeries.Title  = item7.Nombre;
                pieSeries.Values = new ChartValues <ObservableValue> {
                    new ObservableValue(item7.Valor)
                };
                pieSeries.DataLabels = true;

                Series.Add(pieSeries);
            }
            #endregion

            #endregion

            #region Gráfica de cantidad de lecciones aprendidas últimos 5 meses.
            List <FO_Item> listaLeccionesMensual = DataManagerControlDocumentos.GetTotalLeccionesPorMes();

            ColumnSeries columnaSerie = new ColumnSeries();
            columnaSerie.Title  = "Cantidad de Lecciones Aprendidas";
            columnaSerie.Values = new ChartValues <double>();
            listaLeccionesMensual.Reverse();
            foreach (FO_Item item1 in listaLeccionesMensual)
            {
                columnaSerie.Values.Add(item1.Valor);
            }
            Labels = new string[listaLeccionesMensual.Count];
            int j = 0;
            foreach (var item2 in listaLeccionesMensual)
            {
                Labels[j] = item2.Nombre;
                j++;
            }

            SerieLeccionesMensual = new SeriesCollection();
            SerieLeccionesMensual.Add(columnaSerie);
            #endregion

            //Obtenermos el total de lecciones aprendidas.
            TotalLeccionesAprendidas = DataManagerControlDocumentos.GetTotalLecciones();

            //Obtenemos el total de lecciones aprendidas en el mes actual.
            TotalLeccionesMesActual = DataManagerControlDocumentos.GetTotalLeccionesMesActual();

            #region Lecciones aprendidas por usuario
            SeriesLeccionesUsuario = new SeriesCollection();
            List <FO_Item> listaLeccionesUsuario = new List <FO_Item>();
            listaLeccionesUsuario = DataManagerControlDocumentos.GetCantidadLeccionesAprendidasByUsuario();

            foreach (var item7 in listaLeccionesUsuario)
            {
                PieSeries pieSeries = new PieSeries();

                pieSeries.Title  = item7.Nombre;
                pieSeries.Values = new ChartValues <ObservableValue> {
                    new ObservableValue(item7.Valor)
                };
                pieSeries.DataLabels = true;

                SeriesLeccionesUsuario.Add(pieSeries);
            }
            #endregion
            #endregion

            #region Información Control de Documentos
            TotalDocumentos = DataManagerControlDocumentos.GetGridDocumentos(string.Empty).Count;

            TotalDocumentosPorLiberar = DataManagerControlDocumentos.GetDocumentos_PendientesLiberar("").Count;

            TotalDocumentosVencidos = DataManagerControlDocumentos.GetDocumentosAprobadosNoRecibidos(true).Count;

            TotalDocumentosPorRevisar = DataManagerControlDocumentos.GetDocumentosValidar("", "").Count;

            if (TotalDocumentosVencidos == 0 && TotalDocumentosPorLiberar == 0)
            {
                ValueAngularDoc = 100;
            }
            else
            {
                ValueAngularDoc = 100 - ((Convert.ToDouble(TotalDocumentosVencidos) / Convert.ToDouble(TotalDocumentosPorLiberar)) * 100);
            }

            SerieDocumentosLiberados = new SeriesCollection();

            StackedColumnSeries columnaManual = new StackedColumnSeries();
            columnaManual.StackMode  = StackMode.Values;
            columnaManual.DataLabels = true;
            columnaManual.Title      = "MANUAL";

            StackedColumnSeries columnaAutomatico = new StackedColumnSeries();
            columnaAutomatico.StackMode  = StackMode.Values;
            columnaAutomatico.DataLabels = true;
            columnaAutomatico.Title      = "AUTOMÁTICO";

            int[] valores = new int[] { 3, 2, 1, 0, -1 };

            int[] valoresManual     = new int[5];
            int[] valoresAutomatico = new int[5];
            LabelsDocumentoLiberados = new string[valoresAutomatico.Length];

            j = 0;
            foreach (var item2 in valores)
            {
                FO_Item foItem = DataManagerControlDocumentos.GetCantidadDocumentoLiberado("MANUAL", item2);
                valoresManual[j]            = Convert.ToInt32(foItem.Valor);
                LabelsDocumentoLiberados[j] = foItem.Nombre;
                j++;
            }

            j = 0;
            foreach (var item2 in valores)
            {
                FO_Item foItem = DataManagerControlDocumentos.GetCantidadDocumentoLiberado("AUTOMATICO", item2);
                valoresAutomatico[j] = Convert.ToInt32(foItem.Valor);
                j++;
            }

            columnaManual.Values = new ChartValues <int>(valoresManual);

            columnaAutomatico.Values = new ChartValues <int>(valoresAutomatico);

            SerieDocumentosLiberados.Add(columnaManual);
            SerieDocumentosLiberados.Add(columnaAutomatico);


            #endregion
        }
Esempio n. 14
0
        public void getcartesianChart3()
        {
            DateTime NOW = DateTime.Now;

            if (DateTime.Compare(NOW, OperateForm.end_time) > 0)
            {
                NOW = OperateForm.end_time;
            }
            if (DateTime.Compare(NOW, OperateForm.start_time) < 0)
            {
                NOW = OperateForm.start_time;
            }

            TimeSpan timeSpan = NOW - OperateForm.start_time;
            int      len      = (int)double.Parse(timeSpan.TotalMinutes.ToString());

            len  = Math.Min(300, len);
            len  = Math.Max(0, len);
            len /= 10;

            cartesianChart3.Series.Clear();
            for (int i = 0; i < 4; ++i)
            {
                StackedColumnSeries stackedColumnSeries = new StackedColumnSeries();
                stackedColumnSeries.StackMode  = StackMode.Values;
                stackedColumnSeries.DataLabels = false;
                stackedColumnSeries.Title      = OperateForm.resultName[i];
                stackedColumnSeries.Values     = new ChartValues <double>();
                DateTime st = OperateForm.start_time;
                DateTime nx = new DateTime();
                for (int j = 0; j < len; ++j)
                {
                    nx = st.AddMinutes(10);
                    try
                    {
                        if (OperateForm.result[i] != 4)
                        {
                            stackedColumnSeries.Values.Add(-double.Parse(DBTool.getTotSubmitByStEdAndResult(st.ToString(), nx.ToString(), OperateForm.result[i]).ToString()));
                        }
                        else
                        {
                            stackedColumnSeries.Values.Add(double.Parse(DBTool.getTotSubmitByStEdAndResult(st.ToString(), nx.ToString(), OperateForm.result[i]).ToString()));
                        }
                    }
                    catch (Exception ex)
                    {
                        print("网络连接中断!");
                        Application.Exit();
                    }
                    st = nx;
                }
                cartesianChart3.Series.Add(stackedColumnSeries);
            }

            string[] labels2 = new string[len];
            for (int i = 0; i < len; ++i)
            {
                labels2[i] = ((i + 1) * 10).ToString();
            }
            cartesianChart3.AxisX.Clear();
            cartesianChart3.AxisX.Add(new Axis
            {
                Labels    = labels2,
                Separator = new Separator // force the separator step to 1, so it always display all labels
                {
                    Step      = 1,
                    IsEnabled = false //disable it to make it invisible.
                },
                LabelsRotation = 0
            });

            cartesianChart3.AxisY.Clear();
            cartesianChart3.AxisY.Add(new Axis
            {
                LabelFormatter = value => value + ""
            });
        }
Esempio n. 15
0
 private void SetStackColumnProperties(StackedColumnSeries Ser, int Position)
 {
     Ser.LabelsPosition = GetPosition(Position);
 }
Esempio n. 16
0
        //COLUMN STACK CHART #########################################################################################################################
        public void SetStackColumnChart(bool IsStretched)
        {
            if (IsStretched)
            {
                if (ChartType != SeriesChartType.ColumnStack100)
                {
                    Element.Series.Clear();
                }
                ChartType = SeriesChartType.ColumnStack100;
            }
            else
            {
                if (ChartType != SeriesChartType.ColumnStack)
                {
                    Element.Series.Clear();
                }
                ChartType = SeriesChartType.ColumnStack;
            }

            List <List <double> > DV = new List <List <double> >();

            //Populate Data Set
            for (int i = 0; i < DataGrid.Sets.Count; i++)
            {
                List <double> tDV = new List <double>();

                for (int j = 0; j < DataGrid.Sets[i].Points.Count; j++)
                {
                    tDV.Add(DataGrid.Sets[i].Points[j].Number);
                }
                DV.Add(tDV);
            }

            int C = Element.Series.Count;
            int S = DV.Count;

            for (int i = C; i < S; i++)
            {
                StackedColumnSeries CS = new StackedColumnSeries();
                if (IsStretched)
                {
                    CS.StackMode = StackMode.Percentage;
                }
                else
                {
                    CS.StackMode = StackMode.Values;
                }

                Element.Series.Add(CS);
                Element.Series[i].Values = new ChartValues <double>(DV[i].ToArray());
            }

            C = Element.Series.Count;

            if (C > S)
            {
                for (int i = S; i < C; i++)
                {
                    Element.Series.RemoveAt(Element.Series.Count - 1);
                }
            }

            C = Element.Series.Count;

            for (int i = 0; i < S; i++)
            {
                int T = Element.Series[i].Values.Count;
                int V = DV[i].Count;

                for (int j = T; j < V; j++)
                {
                    Element.Series[i].Values.Add(1.0);
                }
            }

            for (int i = 0; i < S; i++)
            {
                int T = Element.Series[i].Values.Count;
                int V = DV[i].Count;

                if (T > V)
                {
                    for (int j = V; j < T; j++)
                    {
                        Element.Series[i].Values.RemoveAt(Element.Series[i].Values.Count - 1);
                    }
                }
            }

            for (int i = 0; i < S; i++)
            {
                int V = DV[i].Count;

                for (int j = 0; j < V; j++)
                {
                    Element.Series[i].Values[j] = DV[i][j];
                    SetStackColumnProperties((StackedColumnSeries)Element.Series[i], (int)DataGrid.Sets[i].Points[j].Label.Alignment);
                    SetSequenceProperties(i, j, (StackedColumnSeries)Element.Series[i]);
                }
            }
        }
        private void cmbAzmon_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            gpChart.Visibility = Visibility.Visible;
            double[] values = new double[] { };

            try
            {
                dynamic getGroupName = cmbGroups.SelectedItem;
                string  gpName       = getGroupName.GroupName;
                dynamic getDateText  = cmbAzmon.SelectedItem;
                string  dPass        = getDateText.DatePass;
                using (var db = new DataClass.myDbContext())
                {
                    dynamic selectedItem = dataGrid.SelectedItems[0];
                    long    uId          = selectedItem.Id;
                    var     data         = db.AHistories.Where(x => x.UserId == uId && x.DatePass == dPass && x.GroupName.Equals(gpName)).Select(x => x).OrderByDescending(x => x.DatePass).ToList();
                    values = new double[] { data.FirstOrDefault().TrueItem, data.FirstOrDefault().FalseItem, data.FirstOrDefault().NoneItem };

                    Series series = new ColumnSeries();

                    switch (FindElement.Settings.ChartType ?? 0)
                    {
                    case 0:
                        series = new ColumnSeries {
                        };
                        break;

                    case 1:
                        series = new StackedColumnSeries {
                        };
                        break;

                    case 2:
                        series = new LineSeries {
                        };
                        break;

                    case 3:
                        series = new StepLineSeries {
                        };
                        break;

                    case 4:
                        series = new StackedAreaSeries {
                        };
                        break;
                    }

                    if (series.GetType() == typeof(ColumnSeries))
                    {
                        AchievementChart.Series.Add(new ColumnSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(LineSeries))
                    {
                        AchievementChart.Series.Add(new LineSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(StackedAreaSeries))
                    {
                        AchievementChart.Series.Add(new StackedAreaSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(StackedColumnSeries))
                    {
                        AchievementChart.Series.Add(new StackedColumnSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }
                    else if (series.GetType() == typeof(StepLineSeries))
                    {
                        AchievementChart.Series.Add(new StepLineSeries
                        {
                            Values          = new ChartValues <double>(values),
                            StrokeDashArray = new System.Windows.Media.DoubleCollection(20)
                        });
                    }

                    AchievementChart.AxisX.Add(new Axis
                    {
                        Labels    = new string[] { "پاسخ صحیح", "پاسخ غلط", "بدون پاسخ" },
                        Separator = new LiveCharts.Wpf.Separator {
                        }
                    });
                    txtName.Text = dPass;
                    txtBook.Text = gpName;
                }
            }
            catch (Exception)
            {
            }
        }
Esempio n. 18
0
        public ChartViewModel(CoinViewModel coinVm)
        {
            this.Hide = new DelegateCommand(() => {
                this.IsShow = false;
            });
            _coinVm = coinVm;
            var mapper = Mappers.Xy <MeasureModel>()
                         .X(model => model.DateTime.Ticks) //use DateTime.Ticks as X
                         .Y(model => model.Value);         //use the value property as Y

            //lets save the mapper globally.
            Charting.For <MeasureModel>(mapper);

            string DateTimeFormatter(double value) => new DateTime((long)value).ToString("HH:mm");
            string SpeedFormatter(double value) => value.ToUnitSpeedText();

            //AxisStep forces the distance between each separator in the X axis
            double axisStep = TimeSpan.FromMinutes(1).Ticks;
            //AxisUnit forces lets the axis know that we are plotting Minutes
            //this is not always necessary, but it can prevent wrong labeling
            double axisUnit   = TimeSpan.TicksPerMinute;
            var    axisYSpeed = new Axis()
            {
                LabelFormatter = SpeedFormatter,
                MinValue       = 0,
                Separator      = new Separator(),
                Foreground     = SAxisForeground,
                FontSize       = 13,
                Position       = AxisPosition.RightTop
            };
            var axisYOnlineCount = new Axis()
            {
                LabelFormatter = value => Math.Round(value, 0) + "miner",
                Separator      = new Separator(),
                Foreground     = SAxisForeground,
                MinValue       = 0,
                FontSize       = 11
            };
            var axisYShareCount = new Axis()
            {
                LabelFormatter = value => Math.Round(value, 0) + "share",
                Separator      = new Separator(),
                Foreground     = SAxisForeground,
                MinValue       = 0,
                FontSize       = 11,
                Position       = AxisPosition.RightTop
            };

            this._axisY = new AxesCollection {
                axisYOnlineCount, axisYSpeed, axisYShareCount
            };
            DateTime now = DateTime.Now;

            this._axisX = new AxesCollection()
            {
                new Axis()
                {
                    LabelFormatter = DateTimeFormatter,
                    MaxValue       = now.Ticks,
                    MinValue       = now.Ticks - TimeSpan.FromMinutes(NTMinerRoot.SpeedHistoryLengthByMinute).Ticks,
                    Unit           = axisUnit,
                    Separator      = new Separator()
                    {
                        Step = axisStep
                    },
                    Foreground = SAxisForeground,
                    FontSize   = 12,
                }
            };
            LineSeries mainCoinSpeedLs = new LineSeries {
                Title             = "speed",
                DataLabels        = false,
                PointGeometrySize = 0,
                StrokeThickness   = 1,
                ScalesYAt         = 1,
                Values            = new ChartValues <MeasureModel>()
            };
            LineSeries onlineCountLs = new LineSeries {
                Title             = "onlineCount",
                DataLabels        = false,
                PointGeometrySize = 0,
                StrokeThickness   = 1,
                ScalesYAt         = 0,
                Fill   = STransparent,
                Stroke = OnlineColor,
                Values = new ChartValues <MeasureModel>()
            };
            LineSeries miningCountLs = new LineSeries {
                Title             = "miningCount",
                DataLabels        = false,
                PointGeometrySize = 0,
                StrokeThickness   = 1,
                ScalesYAt         = 0,
                Fill   = STransparent,
                Stroke = MiningColor,
                Values = new ChartValues <MeasureModel>()
            };

            _rejectValues = new ChartValues <MeasureModel>();
            _acceptValues = new ChartValues <MeasureModel>();
            StackedColumnSeries rejectScs = new StackedColumnSeries {
                Title          = "rejectShare",
                Values         = _rejectValues,
                DataLabels     = false,
                ScalesYAt      = 2,
                MaxColumnWidth = 7
            };
            StackedColumnSeries acceptScs = new StackedColumnSeries {
                Title          = "acceptShare",
                Values         = _acceptValues,
                DataLabels     = false,
                ScalesYAt      = 2,
                MaxColumnWidth = 7
            };

            this._series = new SeriesCollection()
            {
                mainCoinSpeedLs, rejectScs, acceptScs, miningCountLs, onlineCountLs
            };
        }
Esempio n. 19
0
        public void AddLevel3Control(Point p)
        {
            switch (ControlTag)
            {
            case 31:
            {
                PieChart pieChart = new PieChart();
                pieChart.Width  = 400;
                pieChart.Height = 300;

                pieChart.LegendLocation = LegendLocation.Bottom;

                PieSeries pieSeries = new PieSeries();
                pieSeries.Values = new ChartValues <int> {
                    5
                };
                pieSeries.Title      = "A";
                pieSeries.DataLabels = true;

                PieSeries pieSeries2 = new PieSeries();
                pieSeries2.Values = new ChartValues <int> {
                    3
                };
                pieSeries2.Title      = "B";
                pieSeries2.DataLabels = true;

                PieSeries pieSeries3 = new PieSeries();
                pieSeries3.Values = new ChartValues <int> {
                    6
                };
                pieSeries3.Title      = "C";
                pieSeries3.DataLabels = true;

                pieChart.Series.Add(pieSeries);
                pieChart.Series.Add(pieSeries2);
                pieChart.Series.Add(pieSeries3);
                pieChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(pieChart, 0);
                Canvas.SetLeft(pieChart, p.X - pieChart.DesiredSize.Width / 2);
                Canvas.SetTop(pieChart, p.Y - pieChart.DesiredSize.Height / 2);

                AddEvents(pieChart);
                DesignCanvas.Children.Add(pieChart);
            }

            break;

            case 32:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                ColumnSeries columnSeries = new ColumnSeries();
                columnSeries.Values = new ChartValues <int> {
                    5
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                ColumnSeries columnSeries2 = new ColumnSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                ColumnSeries columnSeries3 = new ColumnSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 33:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StackedColumnSeries columnSeries = new StackedColumnSeries();
                columnSeries.Values = new ChartValues <int> {
                    5, 6, 5
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StackedColumnSeries columnSeries2 = new StackedColumnSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 4, 2
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StackedColumnSeries columnSeries3 = new StackedColumnSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6, 3, 3
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 34:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                RowSeries CarSeries = new RowSeries();
                CarSeries.Values = new ChartValues <int> {
                    5
                };
                CarSeries.Title      = "A";
                CarSeries.DataLabels = true;

                RowSeries CarSeries2 = new RowSeries();
                CarSeries2.Values = new ChartValues <int> {
                    3
                };
                CarSeries2.Title      = "B";
                CarSeries2.DataLabels = true;

                RowSeries CarSeries3 = new RowSeries();
                CarSeries3.Values = new ChartValues <int> {
                    6
                };
                CarSeries3.Title      = "C";
                CarSeries3.DataLabels = true;

                cartesianChart.Series.Add(CarSeries);
                cartesianChart.Series.Add(CarSeries2);
                cartesianChart.Series.Add(CarSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 35:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StackedRowSeries columnSeries = new StackedRowSeries();
                columnSeries.Values = new ChartValues <int> {
                    5, 6, 5
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StackedRowSeries columnSeries2 = new StackedRowSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 4, 2
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StackedRowSeries columnSeries3 = new StackedRowSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6, 3, 3
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 36:
            {
                CartesianChart lineChart = new CartesianChart();
                lineChart.Width  = 400;
                lineChart.Height = 300;

                lineChart.LegendLocation = LegendLocation.Bottom;

                LineSeries lineSeries = new LineSeries();
                lineSeries.Values = new ChartValues <int> {
                    5, 6, 8
                };
                lineSeries.Title      = "A";
                lineSeries.DataLabels = true;

                LineSeries lineSeries2 = new LineSeries();
                lineSeries2.Values = new ChartValues <int> {
                    3, 2, 5
                };
                lineSeries2.Title      = "B";
                lineSeries2.DataLabels = true;

                LineSeries lineSeries3 = new LineSeries();
                lineSeries3.Values = new ChartValues <int> {
                    6, 5, 3
                };
                lineSeries3.Title      = "C";
                lineSeries3.DataLabels = true;

                lineChart.Series.Add(lineSeries);
                lineChart.Series.Add(lineSeries2);
                lineChart.Series.Add(lineSeries3);

                lineChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(lineChart, 0);
                Canvas.SetLeft(lineChart, p.X - lineChart.DesiredSize.Width / 2);
                Canvas.SetTop(lineChart, p.Y - lineChart.DesiredSize.Height / 2);

                AddEvents(lineChart);
                DesignCanvas.Children.Add(lineChart);
            }
            break;

            case 37:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StackedAreaSeries columnSeries = new StackedAreaSeries();
                columnSeries.Values = new ChartValues <int> {
                    2, 4, 6
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StackedAreaSeries columnSeries2 = new StackedAreaSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 5, 7
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StackedAreaSeries columnSeries3 = new StackedAreaSeries();
                columnSeries3.Values = new ChartValues <int> {
                    4, 6, 8
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;

            case 38:
            {
                CartesianChart cartesianChart = new CartesianChart();
                cartesianChart.Width  = 400;
                cartesianChart.Height = 300;

                cartesianChart.LegendLocation = LegendLocation.Bottom;

                StepLineSeries columnSeries = new StepLineSeries();
                columnSeries.Values = new ChartValues <int> {
                    1, 2, 1
                };
                columnSeries.Title      = "A";
                columnSeries.DataLabels = true;

                StepLineSeries columnSeries2 = new StepLineSeries();
                columnSeries2.Values = new ChartValues <int> {
                    3, 5, 6
                };
                columnSeries2.Title      = "B";
                columnSeries2.DataLabels = true;

                StepLineSeries columnSeries3 = new StepLineSeries();
                columnSeries3.Values = new ChartValues <int> {
                    6, 7, 7
                };
                columnSeries3.Title      = "C";
                columnSeries3.DataLabels = true;

                cartesianChart.Series.Add(columnSeries);
                cartesianChart.Series.Add(columnSeries2);
                cartesianChart.Series.Add(columnSeries3);

                cartesianChart.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

                Panel.SetZIndex(cartesianChart, 0);
                Canvas.SetLeft(cartesianChart, p.X - cartesianChart.DesiredSize.Width / 2);
                Canvas.SetTop(cartesianChart, p.Y - cartesianChart.DesiredSize.Height / 2);

                AddEvents(cartesianChart);
                DesignCanvas.Children.Add(cartesianChart);
            }
            break;
            }
        }