Exemplo n.º 1
0
        public SeriesCollection ToStackedRowSeriesCollection()
        {
            SeriesCollection seriesCollection = new SeriesCollection();

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

                seriesCollection.Add(series);
            }

            return(seriesCollection);
        }
Exemplo n.º 2
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;
            }
        }
Exemplo n.º 3
0
        // ################################## MARKER SERIES ##################################
        // Bar Series
        public StackedRowSeries SetProperties(StackedRowSeries NewSeries, DataPt Pt)
        {
            NewSeries.LabelsPosition = GetPosition((int)Pt.Label.Alignment);

            return(NewSeries);
        }
Exemplo n.º 4
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
        }
Exemplo n.º 5
0
 private void SetStackBarProperties(StackedRowSeries Ser, int Position)
 {
     Ser.LabelsPosition = GetPosition(Position);
 }
Exemplo n.º 6
0
        //BAR STACK CHART #########################################################################################################################
        public void SetStackBarChart(bool IsStretched)
        {
            if (IsStretched)
            {
                if (ChartType != SeriesChartType.BarStack100)
                {
                    Element.Series.Clear();
                }
                ChartType = SeriesChartType.BarStack100;
            }
            else
            {
                if (ChartType != SeriesChartType.BarStack)
                {
                    Element.Series.Clear();
                }
                ChartType = SeriesChartType.BarStack;
            }

            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++)
            {
                StackedRowSeries CS = new StackedRowSeries();
                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;

                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 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 V = DV[i].Count;

                for (int j = 0; j < V; j++)
                {
                    Element.Series[i].Values[j] = DV[i][j];
                    SetStackBarProperties((StackedRowSeries)Element.Series[i], (int)DataGrid.Sets[i].Points[j].Label.Alignment);
                    SetSequenceProperties(i, j, (StackedRowSeries)Element.Series[i]);
                }
            }
        }
Exemplo n.º 7
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;
            }
        }