示例#1
0
        public static void AddColor(ResourceDictionaryCollection palette,
            Color color)
        {
            var style = new Style(typeof(Control));

            style.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(color)));
            style.Setters.Add(new Setter(Control.BorderThicknessProperty, "0"));
            style.Setters.Add(new Setter(Control.BorderBrushProperty, new SolidColorBrush(Color.FromArgb(255, 255, 255, 255))));

            var dictionary = new ResourceDictionary();
            dictionary.Add("DataPointStyle", style);

            palette.Add(dictionary);
        }
示例#2
0
        void Page_Loaded(object sender, RoutedEventArgs e)
        {
            RotateTransform rotateTransform = new RotateTransform();
            rotateTransform.Angle = 0.90;

            _rotateStyle.Setters.Add(new Setter(CategoryAxis.RenderTransformProperty, rotateTransform));

            if (App.Current.Resources.Contains("chartTitle"))
            {
                _chartTitle = App.Current.Resources["chartTitle"].ToString();
                Chart.Title = _chartTitle;
            }
            if (App.Current.Resources.Contains("independentLabel"))
            {
                _independentLabel = App.Current.Resources["independentLabel"].ToString();
            }

            if (App.Current.Resources.Contains("dependentLabel"))
            {
                _dependentLabel = App.Current.Resources["dependentLabel"].ToString();
            }

            if (App.Current.Resources.Contains("chartLineSeries"))
            {
                _chartLineSeries = App.Current.Resources["chartLineSeries"].ToString();
                _chartLineSeries = _chartLineSeries.Replace(Statics.Comma, ",");
            }

            if (App.Current.Resources.Contains("chartType"))
            {
                _chartType = App.Current.Resources["chartType"].ToString();
                List<object> objectList = new List<object>();

                if (ProcessSeriesData(ref objectList, _chartType, _chartLineSeries, ref _failOverMessage))
                {
                    try
                    {
                        switch (_chartType.ToUpper().Replace(" ", ""))
                        {
                            case Statics.Area:
                                foreach (object line in objectList)
                                {
                                    Chart.Series.Add(line as AreaSeries);
                                }
                                break;

                            case Statics.Bar:

                                foreach (object columnSeries in objectList)
                                {
                                    #region REM rotate label candidate
                                    //if (independentValue.GetType() == Type.GetType("System.String"))
                                    //{
                                    //    //Style style = new Style(typeof(CategoryAxis));
                                    //    //RotateTransform rotateTransform = new RotateTransform();
                                    //    //rotateTransform.Angle = 0.90;

                                    //    //style.Setters.Add(new Setter(CategoryAxis.RenderTransformProperty, rotateTransform));

                                    //    //((ColumnSeries)series).IndependentAxis = new CategoryAxis
                                    //    //{
                                    //    //    Title = _independentLabel,
                                    //    //    Orientation = AxisOrientation.X,
                                    //    //    AxisLabelStyle = _rotateStyle
                                    //    //};

                                    //    ((ColumnSeries)series).IndependentAxis = new CategoryAxis
                                    //    {
                                    //        Title = _independentLabel,
                                    //        Orientation = AxisOrientation.X
                                    //    };
                                    //}
                                    //else if (independentValue.GetType() == Type.GetType("System.DateTime"))
                                    //{
                                    //    ((ColumnSeries)series).IndependentAxis = new DateTimeAxis
                                    //    {
                                    //        Title = _independentLabel,
                                    //        Orientation = AxisOrientation.X
                                    //    };
                                    //}
                                    //else
                                    //{
                                    //    ((ColumnSeries)series).IndependentAxis = new LinearAxis
                                    //    {
                                    //        Title = _independentLabel,
                                    //        Orientation = AxisOrientation.X
                                    //    };
                                    //}
                                    #endregion
                                    Chart.Series.Add(columnSeries as ColumnSeries);
                                }
                                #region REM rotate label candidate
                                //((ColumnSeries)objectList[0] as ColumnSeries).DependentRangeAxis = new LinearAxis
                                //{
                                //    Title = _dependentLabel,
                                //    ShowGridLines = true,
                                //    Orientation = AxisOrientation.Y
                                //};
                                #endregion
                                break;

                            case Statics.Bubble:
                                foreach (object line in objectList)
                                {
                                    Chart.Series.Add(line as BubbleSeries);
                                }
                                break;

                            case Statics.RotatedBar:
                                foreach (object line in objectList)
                                {
                                    Chart.Series.Add(line as BarSeries);
                                }
                                break;

                            case Statics.Histogram:
                                foreach (object line in objectList)
                                {
                                    System.Windows.Controls.DataVisualization.ResourceDictionaryCollection pallete = new ResourceDictionaryCollection();
                                    ResourceDictionary rd = new ResourceDictionary();
                                    Style style = new Style();
                                    style.TargetType = typeof(ColumnDataPoint);

                                    style.Setters.Clear();
                                    //style.Setters.Add(new Setter() { Property = ColumnDataPoint.BackgroundProperty, Value = new SolidColorBrush(Colors.Orange) });
                                    style.Setters.Add(new Setter() { Property = ColumnDataPoint.MarginProperty, Value = new Thickness(0) });
                                    style.Setters.Add(new Setter() { Property = ColumnDataPoint.PaddingProperty, Value = new Thickness(0, 0, 0, 0) });
                                    style.Setters.Add(new Setter() { Property = ColumnDataPoint.MinWidthProperty, Value = 256 });

                                    rd.Clear();
                                    rd.Add("DataPointStyle", style);
                                    pallete.Clear();
                                    pallete.Add(rd);
                                    Chart.Palette = pallete;

                                    Chart.Series.Add(line as ColumnSeries);
                                }
                                break;

                            case Statics.Line:
                                foreach (object line in objectList)
                                {
                                    Chart.Series.Add(line as LineSeries);
                                }
                                break;

                            case Statics.Pie:
                                foreach (object column in objectList)
                                {
                                    Chart.Series.Add(column as PieSeries);
                                }
                                break;

                            case Statics.Scatter:
                                foreach (object line in objectList)
                                {
                                    Chart.Series.Add(line as ScatterSeries);
                                }
                                break;

                            case Statics.Stacked:
                                foreach (object line in objectList)
                                {
                                    Chart.Series.Add(line as StackedBarSeries);
                                }
                                break;

                            default:
                                _failOverMessage = "The specified graph type supplied in the input parameters (initParams) could not be parsed or is not supported.";
                                break;
                        }
                    }
                    catch (Exception exception)
                    {
                        _failOverMessage = exception.Message;
                    }
                }
                else
                {
                    if (_failOverMessage == string.Empty)
                    {
                        _failOverMessage = "The input parameters (initParams) could not be parsed.";
                    }
                }

                if (_failOverMessage.Length > 0)
                {
                    Chart.Visibility = Visibility.Collapsed;
                    FailOverMessage.Text = _failOverMessage;
                }
            }
        }