Esempio n. 1
0
        private void xyChart_DataStructureCreated(object sender, EventArgs e)
        {
            series0.DataPointAnnotations.Clear();

            if (PieChartParameters.ShowAnnotations == true)
            {
                if (PieChartParameters.ShowAnnotationLabel == false && PieChartParameters.ShowAnnotationPercent == false && PieChartParameters.ShowAnnotationValue == false)
                {
                    return;
                }

                string xaml = "<DataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:dvCommon=\"clr-namespace:ComponentArt.Win.DataVisualization.Common;assembly=ComponentArt.Win.DataVisualization.Common\" "
                 + "xmlns:charting=\"clr-namespace:ComponentArt.Win.DataVisualization.Charting;assembly=ComponentArt.Win.DataVisualization.Charting\" "
                 + "xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" "
                 + "xmlns:sys=\"clr-namespace:System;assembly=mscorlib\">"
                    + "<Border Background=\"#70ffcece\" CornerRadius=\"4\" Padding=\"6,3,6,3\" BorderBrush=\"#FFc4c4c4\" BorderThickness=\"0.5\">"
                    + "<StackPanel Orientation=\"Vertical\" HorizontalAlignment=\"Center\">";

                if (PieChartParameters.ShowAnnotationLabel == true)
                {
                    xaml = xaml + "<charting:FormattedTextBlock Margin=\".5,.5,0,0\" HorizontalAlignment=\"Center\" TextAlignment=\"Center\" Data=\"{Binding DataPoint.ActualLabel}\" Foreground=\"Black\" FontWeight=\"Bold\" FontSize=\"10.5\" />";
                }

                xaml = xaml + "<StackPanel Orientation=\"Horizontal\" HorizontalAlignment=\"Center\">";

                if (PieChartParameters.ShowAnnotationValue == true)
                {
                    xaml = xaml + "<TextBlock Text=\"{Binding DataPoint.Y}\" Foreground=\"Black\" FontWeight=\"Bold\" FontSize=\"10.5\" HorizontalAlignment=\"Center\"/>";
                }
                if (PieChartParameters.ShowAnnotationPercent == true)
                {
                    xaml += "<dvCommon:CalcContainer>"
                    + "<dvCommon:CalcContainer.Computing>"
                    + "<sys:String>"
                    + "var sum = 0;"
                    + "var i = 0;"
                    + "while (DataPoint.Chart.DataSeries['S0'].DataPoints.Count > i)"
                    + "{"
                    + "sum = sum + DataPoint.Chart.DataSeries['S0'].DataPoints[i].Y;"
                    + "i = i + 1"
                    + "};"
                    + "var data = '??';"
                                    + "if (sum > 0)"
                                    + "{"
                                    + "    data = DataPoint.Y / sum "
                                    + "};"
                                    + "Data = data;"
                + "</sys:String>"
            + "</dvCommon:CalcContainer.Computing>"
            + "<charting:FormattedTextBlock Format=\" ( 0% )\" FontSize=\"10.5\" HorizontalAlignment=\"Center\" x:Name=\"percentText\">"
            + "</charting:FormattedTextBlock>"
            + "</dvCommon:CalcContainer>";
                }
                xaml = xaml + "</StackPanel></StackPanel>" + "</Border></DataTemplate>";

                DataPointAnnotation dpa1 = new DataPointAnnotation();
                dpa1.MinimumPercentage = AnnotationPercentCutoff;// 20;

                dpa1.LineStroke = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
                dpa1.Template = (DataTemplate)System.Windows.Markup.XamlReader.Parse(xaml);
                series0.DataPointAnnotations.Add(dpa1);

                DataPointAnnotation dpa2 = new DataPointAnnotation();
                dpa2.RelativeX = 0.8;
                dpa2.RelativeY = 0.5;
                dpa2.RelativeRadialOffset = 0.3;
                dpa2.HorizontalOffset = 5;
                dpa2.MaximumPercentage = AnnotationPercentCutoff;// 20;

                dpa2.LineStroke = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
                dpa2.Template = (DataTemplate)System.Windows.Markup.XamlReader.Parse(xaml);
                series0.DataPointAnnotations.Add(dpa2);
            }
        }
Esempio n. 2
0
        private void xyChart_DataStructureCreated(object sender, EventArgs e)
        {
            series0.DataPointAnnotations.Clear();

            if (PieChartParameters.ShowAnnotations == true)
            {
                if (PieChartParameters.ShowAnnotationLabel == false && PieChartParameters.ShowAnnotationPercent == false && PieChartParameters.ShowAnnotationValue == false)
                {
                    return;
                }

                string xaml = "<DataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:dvCommon=\"clr-namespace:ComponentArt.Win.DataVisualization.Common;assembly=ComponentArt.Win.DataVisualization.Common\" "
                              + "xmlns:charting=\"clr-namespace:ComponentArt.Win.DataVisualization.Charting;assembly=ComponentArt.Win.DataVisualization.Charting\" "
                              + "xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" "
                              + "xmlns:sys=\"clr-namespace:System;assembly=mscorlib\">"
                              + "<Border Background=\"#70ffcece\" CornerRadius=\"4\" Padding=\"6,3,6,3\" BorderBrush=\"#FFc4c4c4\" BorderThickness=\"0.5\">"
                              + "<StackPanel Orientation=\"Vertical\" HorizontalAlignment=\"Center\">";

                if (PieChartParameters.ShowAnnotationLabel == true)
                {
                    xaml = xaml + "<charting:FormattedTextBlock Margin=\".5,.5,0,0\" HorizontalAlignment=\"Center\" TextAlignment=\"Center\" Data=\"{Binding DataPoint.ActualLabel}\" Foreground=\"Black\" FontWeight=\"Bold\" FontSize=\"10.5\" />";
                }

                xaml = xaml + "<StackPanel Orientation=\"Horizontal\" HorizontalAlignment=\"Center\">";

                if (PieChartParameters.ShowAnnotationValue == true)
                {
                    xaml = xaml + "<TextBlock Text=\"{Binding DataPoint.Y}\" Foreground=\"Black\" FontWeight=\"Bold\" FontSize=\"10.5\" HorizontalAlignment=\"Center\"/>";
                }
                if (PieChartParameters.ShowAnnotationPercent == true)
                {
                    xaml += "<dvCommon:CalcContainer>"
                            + "<dvCommon:CalcContainer.Computing>"
                            + "<sys:String>"
                            + "var sum = 0;"
                            + "var i = 0;"
                            + "while (DataPoint.Chart.DataSeries['S0'].DataPoints.Count > i)"
                            + "{"
                            + "sum = sum + DataPoint.Chart.DataSeries['S0'].DataPoints[i].Y;"
                            + "i = i + 1"
                            + "};"
                            + "var data = '??';"
                            + "if (sum > 0)"
                            + "{"
                            + "    data = DataPoint.Y / sum "
                            + "};"
                            + "Data = data;"
                            + "</sys:String>"
                            + "</dvCommon:CalcContainer.Computing>"
                            + "<charting:FormattedTextBlock Format=\" ( 0% )\" FontSize=\"10.5\" HorizontalAlignment=\"Center\" x:Name=\"percentText\">"
                            + "</charting:FormattedTextBlock>"
                            + "</dvCommon:CalcContainer>";
                }
                xaml = xaml + "</StackPanel></StackPanel>" + "</Border></DataTemplate>";

                DataPointAnnotation dpa1 = new DataPointAnnotation();
                dpa1.MinimumPercentage = AnnotationPercentCutoff;// 20;

                dpa1.LineStroke = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
                dpa1.Template   = (DataTemplate)System.Windows.Markup.XamlReader.Parse(xaml);
                series0.DataPointAnnotations.Add(dpa1);

                DataPointAnnotation dpa2 = new DataPointAnnotation();
                dpa2.RelativeX            = 0.8;
                dpa2.RelativeY            = 0.5;
                dpa2.RelativeRadialOffset = 0.3;
                dpa2.HorizontalOffset     = 5;
                dpa2.MaximumPercentage    = AnnotationPercentCutoff;// 20;

                dpa2.LineStroke = new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));
                dpa2.Template   = (DataTemplate)System.Windows.Markup.XamlReader.Parse(xaml);
                series0.DataPointAnnotations.Add(dpa2);
            }
        }