public MainWindow()
        {
            InitializeComponent();
            ThreadPool.QueueUserWorkItem(Connect);
            OutputChart.Series.Clear();

            OutputChart.Axes.Clear();

            var readseries = new ColumnSeries { Title = "Read", Background = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0)) };
            var writeseries = new ColumnSeries { Title = "Write", Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0)) };
            var diskaxis = new CategoryAxis { Orientation = AxisOrientation.X };
            OutputChart.Axes.Add(diskaxis);

            var iopsaxis = new LinearAxis { Minimum = 0, Maximum = 50, Orientation = AxisOrientation.Y, Title = "IOPS", ExtendRangeToOrigin = true };
            OutputChart.Axes.Add(iopsaxis);

            readseries.IndependentValueBinding = new Binding("Key");
            readseries.DependentValueBinding = new Binding("Value");
            readseries.ItemsSource = _readdata;

            writeseries.IndependentValueBinding = new Binding("Key");
            writeseries.DependentValueBinding = new Binding("Value");
            writeseries.ItemsSource = _writedata;
            OutputChart.Series.Add(readseries);
            OutputChart.Series.Add(writeseries);
        }
Example #2
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.myChart = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 2:
                this.lineSeries = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;

            case 3:
                this.XLinearAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 4:
                this.linearAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 5:
                this.btnMarkerOn = ((System.Windows.Controls.Primitives.ToggleButton)(target));
                return;
            }
            this._contentLoaded = true;
        }
Example #3
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.LineChart = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 2:
                this.XLinearAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 3:
                this.YLinearAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 4:
                this.SimPlotLineSeries = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;

            case 5:
                this.RtmPlotLineSeries = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;
            }
            this._contentLoaded = true;
        }
Example #4
0
        public RegionFieldWindow(string parameterName, IParameter1DimensionalTypeless<double> parameterToDisplay)
        {
            InitializeComponent();

            _parameter = parameterToDisplay;
            _parameterName = parameterName;

            //plotterHeader.Content = parameterName;
            //var l = new System.Windows.Controls.DataVisualization.Charting.LineSeries();
            var data = from p in parameterToDisplay.GetEnumerator()
                       where !Double.IsNaN(p.Value) && !double.IsInfinity(p.Value)
                       select new Tuple<string, double>(p.Dimension1.ToString(), p.Value);

            chart1.Title = parameterName;

            var mySeries = new ColumnSeries();
            mySeries.IndependentValueBinding = new Binding("Item1");
            mySeries.DependentValueBinding = new Binding("Item2");
            mySeries.ItemsSource = data;
            chart1.Series.Add(mySeries);

            var axis = new LinearAxis();
            axis.Orientation = AxisOrientation.Y;
            axis.Minimum = data.Select(i => i.Item2).Min();
            axis.Maximum = data.Select(i => i.Item2).Max();
            chart1.Axes.Add(axis);
        }
 public AxisPointLinear(Chart xChart, LinearAxis xAxis, Point xPoint, double xMin, double xMax)
   : base(xChart, xAxis, xPoint)
 {
     Min = xMin;
     Max = xMax;
     Range = xMax - xMin;
     Axis = xAxis;
     MouseAxisValueAbsolute = xMin + (MouseAxisValueRelative * Range);
 } // constructor
 /// <summary>
 /// Acquires a dependent axis suitable for use with the data values of the series.
 /// </summary>
 /// <returns>Axis instance.</returns>
 protected override IAxis AcquireDependentAxis()
 {
     IAxis dependentAxis = SeriesHost.Axes
         .Where(a => (a.Orientation == DependentAxisOrientation) && (a is IRangeAxis) && DataItems.Any() && (a.CanPlot(DataItems.First().ActualDependentValue)))
         .FirstOrDefault();
     if (null == dependentAxis)
     {
         LinearAxis linearAxis = new LinearAxis { Orientation = DependentAxisOrientation, ShowGridLines = true };
         if (IsStacked100)
         {
             Style style = new Style(typeof(AxisLabel));
             style.Setters.Add(new Setter(AxisLabel.StringFormatProperty, "{0}%"));
             linearAxis.AxisLabelStyle = style;
         }
         dependentAxis = linearAxis;
     }
     return dependentAxis;
 }
Example #7
0
        private void ChildWindow_Loaded(object sender, RoutedEventArgs e)
        {
            Size();
            service.GetStatisticsDataCompleted += new EventHandler<GetStatisticsDataCompletedEventArgs>(service_GetStatisticsDataCompleted);

            //根据起始时间和结束时间自动设置时间粒度
            SetTimeSpan();

            //初始化x轴
            DateTimeAxis dateAxis = new DateTimeAxis()
            {
                Orientation = AxisOrientation.X,
                Title = TimePoint,
                FontStyle = FontStyles.Normal,
                FontSize = 10f,
                ShowGridLines = true,
            };
            dateAxis.GridLineStyle = new Style(typeof(Line));
            dateAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeThicknessProperty, 1));
            dateAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, "LightGray"));

            //初始化y轴
            LinearAxis valueAxis = new LinearAxis()
            {
                Orientation = AxisOrientation.Y,
                Title = DataVolume,
                FontStyle = FontStyles.Normal,
                FontSize = 12f,
                ShowGridLines = true,
            };
            valueAxis.GridLineStyle = new Style(typeof(Line));
            valueAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, "LightGray"));
            valueAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeThicknessProperty, 1));
            Chart.Axes.Clear();
            Chart.Axes.Add(dateAxis);
            Chart.Axes.Add(valueAxis);

            //加载数据
            ShowData();
        }
Example #8
0
 public Chart(List<ChartData> chartDatas, string valueName)
 {
     InitializeComponent();
     LinearAxis xAxis = new LinearAxis();
     xAxis.Title = Headers.Year;
     xAxis.Interval = 1;
     xAxis.Orientation = AxisOrientation.X;
     LinearAxis yAxis = new LinearAxis();
     yAxis.Title = valueName;
     yAxis.Orientation = AxisOrientation.Y;
     Charts.Axes.Add(xAxis);
     Charts.Axes.Add(yAxis);
     foreach (var data in chartDatas)
     {
         var newChart = new ColumnSeries();
         newChart.DependentValuePath = "Y";
         newChart.IndependentValuePath = "X";
         newChart.Title = data.Name;
         newChart.ItemsSource = data.Points;
         newChart.Refresh();
         Charts.Series.Add(newChart);
     }
 }
Example #9
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.LineChart = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));

            #line 12 "..\..\..\MonitoringChild.xaml"
                this.LineChart.MouseWheel += new System.Windows.Input.MouseWheelEventHandler(this.LineChart_MouseWheel);

            #line default
            #line hidden

            #line 12 "..\..\..\MonitoringChild.xaml"
                this.LineChart.MouseMove += new System.Windows.Input.MouseEventHandler(this.LineChart_MouseMove);

            #line default
            #line hidden

            #line 12 "..\..\..\MonitoringChild.xaml"
                this.LineChart.Unloaded += new System.Windows.RoutedEventHandler(this.LineChart_Unloaded);

            #line default
            #line hidden
                return;

            case 2:
                this.XLinearAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));

            #line 14 "..\..\..\MonitoringChild.xaml"
                this.XLinearAxis.MouseWheel += new System.Windows.Input.MouseWheelEventHandler(this.XLinearAxis_MouseWheel);

            #line default
            #line hidden
                return;

            case 3:
                this.YLinearAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));

            #line 15 "..\..\..\MonitoringChild.xaml"
                this.YLinearAxis.MouseWheel += new System.Windows.Input.MouseWheelEventHandler(this.YLinearAxis_MouseWheel);

            #line default
            #line hidden
                return;

            case 4:
                this.SimPlotLineSeries = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;

            case 5:
                this.RtmPlotLineSeries = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;

            case 6:
                this.ResetButton = ((System.Windows.Controls.Button)(target));

            #line 41 "..\..\..\MonitoringChild.xaml"
                this.ResetButton.Click += new System.Windows.RoutedEventHandler(this.ResetButton_Click);

            #line default
            #line hidden
                return;

            case 7:
                this.MarkCheckBox = ((System.Windows.Controls.CheckBox)(target));

            #line 44 "..\..\..\MonitoringChild.xaml"
                this.MarkCheckBox.Checked += new System.Windows.RoutedEventHandler(this.MarkCheckBox_Checked);

            #line default
            #line hidden

            #line 44 "..\..\..\MonitoringChild.xaml"
                this.MarkCheckBox.Unchecked += new System.Windows.RoutedEventHandler(this.MarkCheckBox_Unchecked);

            #line default
            #line hidden
                return;
            }
            this._contentLoaded = true;
        }
Example #10
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.gridMain = ((System.Windows.Controls.Grid)(target));
                return;

            case 2:
                this.gridSK1 = ((System.Windows.Controls.Grid)(target));
                return;

            case 3:
                this.spTextBlock = ((System.Windows.Controls.StackPanel)(target));
                return;

            case 4:
                this.imgSK = ((System.Windows.Controls.Image)(target));
                return;

            case 5:
                this.SKHistory = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 6:
                this.YAxisSK1 = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 7:
                this.XAxisSK1 = ((System.Windows.Controls.DataVisualization.Charting.DateTimeAxis)(target));
                return;

            case 8:
                this.YLHistory = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 9:
                this.YAxisYL1 = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 10:
                this.XAxisYL1 = ((System.Windows.Controls.DataVisualization.Charting.DateTimeAxis)(target));
                return;

            case 11:
                this.gridSK2 = ((System.Windows.Controls.Grid)(target));
                return;

            case 12:
                this.spTextBlockSK2 = ((System.Windows.Controls.StackPanel)(target));
                return;

            case 13:
                this.imgSK2 = ((System.Windows.Controls.Image)(target));
                return;

            case 14:
                this.SK2History = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 15:
                this.YAxisSK2 = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 16:
                this.XAxisSK2 = ((System.Windows.Controls.DataVisualization.Charting.DateTimeAxis)(target));
                return;

            case 17:
                this.YL2History = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 18:
                this.YAxisYL2 = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 19:
                this.XAxisYL2 = ((System.Windows.Controls.DataVisualization.Charting.DateTimeAxis)(target));
                return;

            case 20:
                this.gridSK3 = ((System.Windows.Controls.Grid)(target));
                return;

            case 21:
                this.spTextBlockSK3 = ((System.Windows.Controls.StackPanel)(target));
                return;

            case 22:
                this.imgSK3 = ((System.Windows.Controls.Image)(target));
                return;

            case 23:
                this.SK3History = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 24:
                this.YAxisSK3 = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 25:
                this.XAxisSK3 = ((System.Windows.Controls.DataVisualization.Charting.DateTimeAxis)(target));
                return;

            case 26:
                this.YL3History = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 27:
                this.YAxisYL3 = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 28:
                this.XAxisYL3 = ((System.Windows.Controls.DataVisualization.Charting.DateTimeAxis)(target));
                return;
            }
            this._contentLoaded = true;
        }
Example #11
0
 public void InitializeComponent()
 {
     if (!this._contentLoaded)
     {
         this._contentLoaded = true;
         Application.LoadComponent(this, new Uri("/BEPB;component/MainPage.xaml", UriKind.Relative));
         this.LayoutRoot = (Grid) base.FindName("LayoutRoot");
         this.Actually = (Image) base.FindName("Actually");
         this.Quality = (Image) base.FindName("Quality");
         this.Forecast = (Image) base.FindName("Forecast");
         this.Support = (Image) base.FindName("Support");
         this.Mobile = (Image) base.FindName("Mobile");
         this.busyIndicator = (BusyIndicator) base.FindName("busyIndicator");
         this.map = (CMap) base.FindName("map");
         this.epbMapTileLayer = (MapTileLayer) base.FindName("epbMapTileLayer");
         this.MapMask = (MapLayer) base.FindName("MapMask");
         this.Districts = (MapLayer) base.FindName("Districts");
         this.CityCenterBorder2 = (MapPolygon) base.FindName("CityCenterBorder2");
         this.HuaiRou = (MapPolygon) base.FindName("HuaiRou");
         this.MiYun = (MapPolygon) base.FindName("MiYun");
         this.YanQing = (MapPolygon) base.FindName("YanQing");
         this.ChangPing = (MapPolygon) base.FindName("ChangPing");
         this.PingGu = (MapPolygon) base.FindName("PingGu");
         this.ShunYi = (MapPolygon) base.FindName("ShunYi");
         this.MenTouGou = (MapPolygon) base.FindName("MenTouGou");
         this.HaiDian = (MapPolygon) base.FindName("HaiDian");
         this.ChaoYang = (MapPolygon) base.FindName("ChaoYang");
         this.TongZhou = (MapPolygon) base.FindName("TongZhou");
         this.ShiJingShan = (MapPolygon) base.FindName("ShiJingShan");
         this.DongCheng = (MapPolygon) base.FindName("DongCheng");
         this.XiCheng = (MapPolygon) base.FindName("XiCheng");
         this.FangShan = (MapPolygon) base.FindName("FangShan");
         this.FengTai = (MapPolygon) base.FindName("FengTai");
         this.DaXing = (MapPolygon) base.FindName("DaXing");
         this.DistrictsName = (MapLayer) base.FindName("DistrictsName");
         this.东城区Name = (Pushpin) base.FindName("东城区Name");
         this.西城区Name = (Pushpin) base.FindName("西城区Name");
         this.朝阳区Name = (Pushpin) base.FindName("朝阳区Name");
         this.丰台区Name = (Pushpin) base.FindName("丰台区Name");
         this.石景山区Name = (Pushpin) base.FindName("石景山区Name");
         this.海淀区Name = (Pushpin) base.FindName("海淀区Name");
         this.门头沟区Name = (Pushpin) base.FindName("门头沟区Name");
         this.房山区Name = (Pushpin) base.FindName("房山区Name");
         this.通州区Name = (Pushpin) base.FindName("通州区Name");
         this.顺义区Name = (Pushpin) base.FindName("顺义区Name");
         this.昌平区Name = (Pushpin) base.FindName("昌平区Name");
         this.大兴区Name = (Pushpin) base.FindName("大兴区Name");
         this.怀柔区Name = (Pushpin) base.FindName("怀柔区Name");
         this.平谷区Name = (Pushpin) base.FindName("平谷区Name");
         this.密云县Name = (Pushpin) base.FindName("密云县Name");
         this.延庆县Name = (Pushpin) base.FindName("延庆县Name");
         this.Five = (MapLayer) base.FindName("Five");
         this.NorthEastBorder = (MapPolygon) base.FindName("NorthEastBorder");
         this.NorthWestBorder = (MapPolygon) base.FindName("NorthWestBorder");
         this.SouthWestBorder = (MapPolygon) base.FindName("SouthWestBorder");
         this.CityCenterBorder = (MapPolygon) base.FindName("CityCenterBorder");
         this.SouthEastBorder = (MapPolygon) base.FindName("SouthEastBorder");
         this.NorthEast = (MapPolygon) base.FindName("NorthEast");
         this.NorthWest = (MapPolygon) base.FindName("NorthWest");
         this.SouthWest = (MapPolygon) base.FindName("SouthWest");
         this.CityCenter = (MapPolygon) base.FindName("CityCenter");
         this.SouthEast = (MapPolygon) base.FindName("SouthEast");
         this.NorthEastText = (Pushpin) base.FindName("NorthEastText");
         this.NorthWestText = (Pushpin) base.FindName("NorthWestText");
         this.CityCenterText = (Pushpin) base.FindName("CityCenterText");
         this.SouthEastText = (Pushpin) base.FindName("SouthEastText");
         this.SouthWestText = (Pushpin) base.FindName("SouthWestText");
         this.MapStations = (MapLayer) base.FindName("MapStations");
         this.NavigationCtrl = (BEPB.NavigationCtrl) base.FindName("NavigationCtrl");
         this.btn_yx = (ToggleButton) base.FindName("btn_yx");
         this.btn_dx = (ToggleButton) base.FindName("btn_dx");
         this.btn_sl = (ToggleButton) base.FindName("btn_sl");
         this.btnAlertMessage = (Button) base.FindName("btnAlertMessage");
         this.wrwtl = (Image) base.FindName("wrwtl");
         this.wrwtlGrid = (Grid) base.FindName("wrwtlGrid");
         this.wrwtlTitle = (TextBlock) base.FindName("wrwtlTitle");
         this.wrwtlRect1 = (Rectangle) base.FindName("wrwtlRect1");
         this.wrwtlRect2 = (Rectangle) base.FindName("wrwtlRect2");
         this.wrwtlRect3 = (Rectangle) base.FindName("wrwtlRect3");
         this.wrwtlRect4 = (Rectangle) base.FindName("wrwtlRect4");
         this.wrwtlRect5 = (Rectangle) base.FindName("wrwtlRect5");
         this.wrwtlRect6 = (Rectangle) base.FindName("wrwtlRect6");
         this.wrwtlData = (TextBlock) base.FindName("wrwtlData");
         this.p_bottom_aqi = (Image) base.FindName("p_bottom_aqi");
         this.p_bottom_aqiGrid = (StackPanel) base.FindName("p_bottom_aqiGrid");
         this.aqiEllipse1 = (Ellipse) base.FindName("aqiEllipse1");
         this.aqiEllipse2 = (Ellipse) base.FindName("aqiEllipse2");
         this.aqiEllipse3 = (Ellipse) base.FindName("aqiEllipse3");
         this.aqiEllipse4 = (Ellipse) base.FindName("aqiEllipse4");
         this.aqiEllipse5 = (Ellipse) base.FindName("aqiEllipse5");
         this.aqiEllipse6 = (Ellipse) base.FindName("aqiEllipse6");
         this.p_aqi_detail = (Image) base.FindName("p_aqi_detail");
         this.dgAQIDetailText = (DataGrid) base.FindName("dgAQIDetailText");
         this.RenderImagesListBox = (ListBox) base.FindName("RenderImagesListBox");
         this.LeftFrame = (Grid) base.FindName("LeftFrame");
         this.Expand = (Storyboard) base.FindName("Expand");
         this.LeftFrameExpandAnimation = (DoubleAnimation) base.FindName("LeftFrameExpandAnimation");
         this.LeftFrameNewExpand = (Storyboard) base.FindName("LeftFrameNewExpand");
         this.ForecastExpandAnimation = (DoubleAnimation) base.FindName("ForecastExpandAnimation");
         this.ActuallyExpandAnimation = (DoubleAnimation) base.FindName("ActuallyExpandAnimation");
         this.QualityExpandAnimation = (DoubleAnimation) base.FindName("QualityExpandAnimation");
         this.ActuallyFrame_Old = (Grid) base.FindName("ActuallyFrame_Old");
         this.Tab = (TabControl) base.FindName("Tab");
         this.AQITabItem = (TabItem) base.FindName("AQITabItem");
         this.AQITabItemGrid = (Grid) base.FindName("AQITabItemGrid");
         this.dgAQI_Old = (DataGrid) base.FindName("dgAQI_Old");
         this.WRWTabItem = (TabItem) base.FindName("WRWTabItem");
         this.WRWTabItemGrid = (Grid) base.FindName("WRWTabItemGrid");
         this.LeftFrameTopRectangle_Old = (Rectangle) base.FindName("LeftFrameTopRectangle_Old");
         this.dgWRW_Old = (DataGrid) base.FindName("dgWRW_Old");
         this.lbl_DateTime_Old = (Run) base.FindName("lbl_DateTime_Old");
         this.wrwButtonsBorder_Old = (Border) base.FindName("wrwButtonsBorder_Old");
         this.wrwButtons_Old = (Canvas) base.FindName("wrwButtons_Old");
         this.PM25Storyboard_Old = (Storyboard) base.FindName("PM25Storyboard_Old");
         this.PM10Storyboard_Old = (Storyboard) base.FindName("PM10Storyboard_Old");
         this.SO2Storyboard_Old = (Storyboard) base.FindName("SO2Storyboard_Old");
         this.NO2Storyboard_Old = (Storyboard) base.FindName("NO2Storyboard_Old");
         this.O31Storyboard_Old = (Storyboard) base.FindName("O31Storyboard_Old");
         this.COStoryboard_Old = (Storyboard) base.FindName("COStoryboard_Old");
         this.wrw_pm25_Old = (ToggleButton) base.FindName("wrw_pm25_Old");
         this.wrw_pm10_Old = (ToggleButton) base.FindName("wrw_pm10_Old");
         this.wrw_so2_Old = (ToggleButton) base.FindName("wrw_so2_Old");
         this.wrw_no2_Old = (ToggleButton) base.FindName("wrw_no2_Old");
         this.wrw_o31_Old = (ToggleButton) base.FindName("wrw_o31_Old");
         this.wrw_co_Old = (ToggleButton) base.FindName("wrw_co_Old");
         this.ActuallyFrame = (Border) base.FindName("ActuallyFrame");
         this.TabDivActually = (Grid) base.FindName("TabDivActually");
         this.ActuallyLeftTabItem = (ColumnDefinition) base.FindName("ActuallyLeftTabItem");
         this.ActuallyRightTabItem = (ColumnDefinition) base.FindName("ActuallyRightTabItem");
         this.ActuallyPanelHeader = (Grid) base.FindName("ActuallyPanelHeader");
         this.btnActuallyExpand = (PushedImageButton) base.FindName("btnActuallyExpand");
         this.lbl_DateTime_WRW = (Run) base.FindName("lbl_DateTime_WRW");
         this.LeftFrameWrwCollapsedBottomRectangle = (Rectangle) base.FindName("LeftFrameWrwCollapsedBottomRectangle");
         this.ActuallyGrid = (Grid) base.FindName("ActuallyGrid");
         this.LeftFrameTopRectangle = (Rectangle) base.FindName("LeftFrameTopRectangle");
         this.dgWRW = (DataGrid) base.FindName("dgWRW");
         this.wrwButtonsBorder = (Border) base.FindName("wrwButtonsBorder");
         this.wrwButtons = (Canvas) base.FindName("wrwButtons");
         this.PM25Storyboard = (Storyboard) base.FindName("PM25Storyboard");
         this.PM10Storyboard = (Storyboard) base.FindName("PM10Storyboard");
         this.SO2Storyboard = (Storyboard) base.FindName("SO2Storyboard");
         this.NO2Storyboard = (Storyboard) base.FindName("NO2Storyboard");
         this.O31Storyboard = (Storyboard) base.FindName("O31Storyboard");
         this.COStoryboard = (Storyboard) base.FindName("COStoryboard");
         this.wrw_pm25 = (ToggleButton) base.FindName("wrw_pm25");
         this.wrw_so2 = (ToggleButton) base.FindName("wrw_so2");
         this.wrw_no2 = (ToggleButton) base.FindName("wrw_no2");
         this.wrw_o31 = (ToggleButton) base.FindName("wrw_o31");
         this.wrw_co = (ToggleButton) base.FindName("wrw_co");
         this.wrw_pm10 = (ToggleButton) base.FindName("wrw_pm10");
         this.AirQualityFrame = (Border) base.FindName("AirQualityFrame");
         this.TabDivQuality = (Grid) base.FindName("TabDivQuality");
         this.QualityHeader = (Grid) base.FindName("QualityHeader");
         this.QualityLeftTabItem = (ColumnDefinition) base.FindName("QualityLeftTabItem");
         this.QualityRightTabItem = (ColumnDefinition) base.FindName("QualityRightTabItem");
         this.QualityPanelHeader = (Grid) base.FindName("QualityPanelHeader");
         this.btnQualityExpand = (PushedImageButton) base.FindName("btnQualityExpand");
         this.QualityGrid = (Grid) base.FindName("QualityGrid");
         this.lbl_DateTime_AQI = (Run) base.FindName("lbl_DateTime_AQI");
         this.dgAQIGrid = (Grid) base.FindName("dgAQIGrid");
         this.dgAQI = (DataGrid) base.FindName("dgAQI");
         this.DayForecastPanel = (Border) base.FindName("DayForecastPanel");
         this.TabDiv = (Grid) base.FindName("TabDiv");
         this.yb_jl4_2 = (Grid) base.FindName("yb_jl4_2");
         this.ForecaseLeftTabItem = (ColumnDefinition) base.FindName("ForecaseLeftTabItem");
         this.ForecaseRightTabItem = (ColumnDefinition) base.FindName("ForecaseRightTabItem");
         this.ForecastPanelHeader = (Grid) base.FindName("ForecastPanelHeader");
         this.btnForecastExpand = (PushedImageButton) base.FindName("btnForecastExpand");
         this.ForecastGridBorder = (Border) base.FindName("ForecastGridBorder");
         this.forecastGrid = (DataGrid) base.FindName("forecastGrid");
         this.forecastMsg = (Grid) base.FindName("forecastMsg");
         this.ExpandButtonGrid = (Grid) base.FindName("ExpandButtonGrid");
         this.Line1 = (Rectangle) base.FindName("Line1");
         this.Line2 = (Rectangle) base.FindName("Line2");
         this.Line3 = (Rectangle) base.FindName("Line3");
         this.Line4 = (Rectangle) base.FindName("Line4");
         this.btnExpand = (ToggleButton) base.FindName("btnExpand");
         this.btnExpandTooTip = (TextBlock) base.FindName("btnExpandTooTip");
         this.FloatWRWPopup = (FloatPopup) base.FindName("FloatWRWPopup");
         this.WRWPopupBorder = (Border) base.FindName("WRWPopupBorder");
         this.WRWPopupBackground = (Grid) base.FindName("WRWPopupBackground");
         this.wrwqp_8 = (Grid) base.FindName("wrwqp_8");
         this.wrwqp_9 = (Grid) base.FindName("wrwqp_9");
         this.wrwqp_11 = (Grid) base.FindName("wrwqp_11");
         this.wrwqp_12 = (Grid) base.FindName("wrwqp_12");
         this.WRWChartPanel = (Grid) base.FindName("WRWChartPanel");
         this.WRWExpandAnimation = (DoubleAnimation) base.FindName("WRWExpandAnimation");
         this.WRWChart = (Chart) base.FindName("WRWChart");
         this.WRWChartTitle = (TextBlock) base.FindName("WRWChartTitle");
         this.XAxis = (DateTimeAxis) base.FindName("XAxis");
         this.YAxis = (LinearAxis) base.FindName("YAxis");
         this.WRWChartText = (TextBlock) base.FindName("WRWChartText");
         this.wrwqp_16 = (Grid) base.FindName("wrwqp_16");
         this.btnWRWExpand = (ToggleButton) base.FindName("btnWRWExpand");
         this.FloatAQIPopup = (FloatPopup) base.FindName("FloatAQIPopup");
         this.AQIPopupBorder = (Border) base.FindName("AQIPopupBorder");
         this.AQIPopupBackground = (Grid) base.FindName("AQIPopupBackground");
         this.aqi_26 = (Grid) base.FindName("aqi_26");
         this.aqi_27 = (Grid) base.FindName("aqi_27");
         this.aqi_28 = (Grid) base.FindName("aqi_28");
         this.aqi_29 = (Grid) base.FindName("aqi_29");
         this.aqi_30 = (Grid) base.FindName("aqi_30");
         this.AQIPanel = (Grid) base.FindName("AQIPanel");
         this.AQIExpandAnimation = (DoubleAnimation) base.FindName("AQIExpandAnimation");
         this.AQIDataGrid = (DataGrid) base.FindName("AQIDataGrid");
         this.AQIPopupBottom = (Grid) base.FindName("AQIPopupBottom");
         this.btnAQIExpand = (ToggleButton) base.FindName("btnAQIExpand");
         this.FloatForecastPopup = (FloatPopup) base.FindName("FloatForecastPopup");
         this.ForecastBorder = (Border) base.FindName("ForecastBorder");
         this.yb_2 = (Grid) base.FindName("yb_2");
         this.ForecastPopupHeader = (Grid) base.FindName("ForecastPopupHeader");
         this.ForecastNight = (Grid) base.FindName("ForecastNight");
         this.ForecastNightStationName = (Grid) base.FindName("ForecastNightStationName");
         this.yb_30 = (Grid) base.FindName("yb_30");
         this.yb_39 = (Grid) base.FindName("yb_39");
         this.yb_40 = (Grid) base.FindName("yb_40");
         this.ForecastNightConent = (Grid) base.FindName("ForecastNightConent");
         this.ForecastDay = (Grid) base.FindName("ForecastDay");
         this.ForecastDayStationName = (Grid) base.FindName("ForecastDayStationName");
         this.yb_61 = (Grid) base.FindName("yb_61");
         this.yb_62 = (Grid) base.FindName("yb_62");
         this.yb_65 = (Grid) base.FindName("yb_65");
         this.yb_66 = (Grid) base.FindName("yb_66");
         this.AlertWnd = (Marquee) base.FindName("AlertWnd");
         this.MapRange = (TextBox) base.FindName("MapRange");
         this.txtbWebCounts = (TextBlock) base.FindName("txtbWebCounts");
     }
 }
 public void ActualMinimumActualMaximumCorrect()
 {
     Chart chart = new Chart();
     LinearAxis axis = new LinearAxis { Orientation = AxisOrientation.X, Minimum = 10, Maximum = 20 };
     chart.Axes.Add(axis);
     ScatterSeries series = new ScatterSeries();
     series.DependentValueBinding = new Binding();
     series.IndependentValueBinding = new Binding();
     int[] itemsSource = new int[] { 14 };
     series.ItemsSource = itemsSource;
     chart.Series.Add(series);
     TestAsync(
         chart,
         () => Assert.AreEqual(axis.Minimum, axis.ActualMinimum),
         () => Assert.AreEqual(axis.Maximum, axis.ActualMaximum));
 }
 public void RemoveAxisFromEmptyChart()
 {
     Chart chart = new Chart();
     LinearAxis axis = new LinearAxis { Orientation = AxisOrientation.X };
     chart.Axes.Add(axis);
     chart.Axes.Remove(axis);
 }
 public void CustomMinimumAndMaximumAreRespected()
 {
     Chart chart = new Chart();
     LinearAxis horizontalAxis = new LinearAxis { Orientation = AxisOrientation.X, Minimum = 50, Maximum = 120 };
     chart.Axes.Add(horizontalAxis);
     LinearAxis verticalAxis = new LinearAxis { Orientation = AxisOrientation.Y, Minimum = 40, Maximum = 130 };
     chart.Axes.Add(verticalAxis);
     ScatterSeries series = new ScatterSeries();
     series.IndependentValueBinding = new Binding();
     series.ItemsSource = new int[] { 100 };
     chart.Series.Add(series);
     TestAsync(
         chart,
         () => Assert.AreEqual(50, horizontalAxis.ActualMinimum),
         () => Assert.AreEqual(120, horizontalAxis.ActualMaximum),
         () => Assert.AreEqual(40, verticalAxis.ActualMinimum),
         () => Assert.AreEqual(130, verticalAxis.ActualMaximum));
 }
Example #15
0
        private void RenderFinishScatterChart(List<NumericDataValue> dataValues, StatisticsRepository.LinearRegression.LinearRegressionResults results, NumericDataValue maxValue, NumericDataValue minValue)
        {
            Chart chart = new Chart();
            chart.Loaded += new RoutedEventHandler(chart_Loaded);
            chart.BorderThickness = new Thickness(0);
            ScatterSeries series = new ScatterSeries();

            LinearAxis xaxis = new LinearAxis();
            xaxis.Orientation = AxisOrientation.X;
            xaxis.Title = cbxScatterXAxisField.SelectedItem.ToString();
            series.IndependentAxis = xaxis;

            LinearAxis yaxis = new LinearAxis();
            yaxis.Orientation = AxisOrientation.Y;
            yaxis.Title = cbxScatterYAxisField.SelectedItem.ToString();
            series.DependentRangeAxis = yaxis;
            yaxis.ShowGridLines = (bool)checkboxShowHorizontalGridLines.IsChecked;

            series.IndependentValuePath = "IndependentValue";
            series.DependentValuePath = "DependentValue";
            series.ItemsSource = dataValues;
            chart.Series.Add(series);

            if (results.variables != null)
            {
                decimal coefficient = Convert.ToDecimal(results.variables[0].coefficient);
                decimal constant = Convert.ToDecimal(results.variables[1].coefficient);

                NumericDataValue newMaxValue = new NumericDataValue();
                newMaxValue.IndependentValue = maxValue.IndependentValue + 1;
                newMaxValue.DependentValue = (coefficient * maxValue.IndependentValue) + constant;
                NumericDataValue newMinValue = new NumericDataValue();
                newMinValue.IndependentValue = minValue.IndependentValue - 1;
                newMinValue.DependentValue = (coefficient * minValue.IndependentValue) + constant;

                List<NumericDataValue> regresValues = new List<NumericDataValue>();
                regresValues.Add(newMinValue);
                regresValues.Add(newMaxValue);

                LineSeries regression = new LineSeries();
                regression.DependentRangeAxis = yaxis;
                regression.IndependentAxis = xaxis;
                regression.IndependentValuePath = "IndependentValue";
                regression.DependentValuePath = "DependentValue";
                regression.ItemsSource = regresValues;
                chart.Series.Add(regression);

                series.LegendItems.Clear();
                regression.LegendItems.Clear();

                chart.Height = 600;
                if (dataValues.Count > 20)
                    chart.Width = dataValues.Count * 25;
                else
                    chart.Width = 800;
                pnlMain.Children.Clear();
                pnlMain.Children.Add(chart);
            }
            else
            {
                pnlMain.Children.Clear();
                RenderFinishWithWarning("Insufficient data to produce this chart.");
            }
            //RenderFinish();
        }
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.teamsDataGrid = ((System.Windows.Controls.DataGrid)(target));
                return;

            case 2:
                this.playersDataGrid = ((System.Windows.Controls.DataGrid)(target));
                return;

            case 3:
                this.nextWeekButton = ((System.Windows.Controls.Button)(target));

            #line 24 "..\..\Leaderboard.xaml"
                this.nextWeekButton.Click += new System.Windows.RoutedEventHandler(this.NextWeekClick);

            #line default
            #line hidden
                return;

            case 4:
                this.prevWeekButton = ((System.Windows.Controls.Button)(target));

            #line 25 "..\..\Leaderboard.xaml"
                this.prevWeekButton.Click += new System.Windows.RoutedEventHandler(this.PrevWeekClick);

            #line default
            #line hidden
                return;

            case 5:
                this.LineGraph = ((System.Windows.Controls.Button)(target));

            #line 26 "..\..\Leaderboard.xaml"
                this.LineGraph.Click += new System.Windows.RoutedEventHandler(this.LineGraph_Click);

            #line default
            #line hidden
                return;

            case 6:
                this.BarGraph = ((System.Windows.Controls.Button)(target));

            #line 27 "..\..\Leaderboard.xaml"
                this.BarGraph.Click += new System.Windows.RoutedEventHandler(this.BarGraph_Click);

            #line default
            #line hidden
                return;

            case 7:
                this.tournamentButton = ((System.Windows.Controls.Button)(target));

            #line 28 "..\..\Leaderboard.xaml"
                this.tournamentButton.Click += new System.Windows.RoutedEventHandler(this.TournamentBracketClick);

            #line default
            #line hidden
                return;

            case 8:
                this.lineChart = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 9:
                this.YAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 10:
                this.lineZoom = ((System.Windows.Controls.Slider)(target));

            #line 44 "..\..\Leaderboard.xaml"
                this.lineZoom.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler <double>(this.lineZoom_ValueChanged);

            #line default
            #line hidden
                return;

            case 11:
                this.allBar = ((System.Windows.Controls.Grid)(target));
                return;

            case 12:
                this.barCol1 = ((System.Windows.Controls.StackPanel)(target));
                return;

            case 13:
                this.b1 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 14:
                this.b2 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 15:
                this.b3 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 16:
                this.b4 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 17:
                this.b5 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 18:
                this.b6 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 19:
                this.b7 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 20:
                this.b8 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 21:
                this.b9 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 22:
                this.b10 = ((System.Windows.Controls.ProgressBar)(target));
                return;

            case 23:
                this.barCol3 = ((System.Windows.Controls.StackPanel)(target));
                return;

            case 24:
                this.n1 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 25:
                this.n2 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 26:
                this.n3 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 27:
                this.n4 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 28:
                this.n5 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 29:
                this.n6 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 30:
                this.n7 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 31:
                this.n8 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 32:
                this.n9 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 33:
                this.n10 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 34:
                this.barCol2 = ((System.Windows.Controls.StackPanel)(target));
                return;

            case 35:
                this.s1 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 36:
                this.s2 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 37:
                this.s3 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 38:
                this.s4 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 39:
                this.s5 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 40:
                this.s6 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 41:
                this.s7 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 42:
                this.s8 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 43:
                this.s9 = ((System.Windows.Controls.TextBlock)(target));
                return;

            case 44:
                this.s10 = ((System.Windows.Controls.TextBlock)(target));
                return;
            }
            this._contentLoaded = true;
        }
Example #17
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void dbCol_GetRecordsCompleted(object sender, GetRecordsCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                List<EstCol> estCols = GenerateColData(e.Result);
                Dictionary<string, ColChart> ColValue = new Dictionary<string, ColChart>();
                ColChart chart;

                foreach (EstCol estcol in estCols)
                {
                    if (!ColValue.ContainsKey(estcol.Nm))
                        ColValue.Add(estcol.Nm, new ColChart()
                        {
                            Title = estcol.Nm,
                            ItemSource = new List<EstCol> { new EstCol() { Amount = estcol.Amount, Month = estcol.Month } },
                        });
                    else
                    {
                        chart = ColValue[estcol.Nm];
                        List<EstCol> amt = chart.ItemSource;
                        amt.Add(new EstCol() { Amount = estcol.Amount, Month = estcol.Month });
                    }
                }

                pieChart3.Series.Clear();
                foreach (KeyValuePair<string, ColChart> kvp in ColValue)
                {
                    DataPointSeries series = new ColumnSeries();
                    series.Title = (kvp.Value).Title;
                    series.ItemsSource = (kvp.Value).ItemSource;
                    series.DependentValuePath = "Amount";
                    series.IndependentValuePath = "Month";                    
                    pieChart3.Series.Add(series);
                }
                
                CategoryAxis xAxis = new CategoryAxis();
                xAxis.Title = "月(" + dateFrom.ToString("yyyy/MM/dd") + " ~ " + dateTo.ToString("yyyy/MM/dd") + ")";
                xAxis.SortOrder = CategorySortOrder.Ascending; 
                xAxis.Orientation = AxisOrientation.X;
                pieChart3.Axes.Add(xAxis);
                LinearAxis yAxis = new LinearAxis();
                yAxis.Title = "金額(万)";
                yAxis.Orientation = AxisOrientation.Y;
                pieChart3.Axes.Add(yAxis);
            }
        }
Example #18
0
        /// <summary>
        /// IntervalProperty property changed handler.
        /// </summary>
        /// <param name="d">LinearAxis that changed its Interval.</param>
        /// <param name="e">Event arguments.</param>
        private static void OnIntervalPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            LinearAxis source = (LinearAxis)d;

            source.OnIntervalPropertyChanged();
        }
 void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
     switch (connectionId)
     {
     case 1:
     this.teamsDataGrid = ((System.Windows.Controls.DataGrid)(target));
     return;
     case 2:
     this.playersDataGrid = ((System.Windows.Controls.DataGrid)(target));
     return;
     case 3:
     this.nextWeekButton = ((System.Windows.Controls.Button)(target));
     
     #line 24 "..\..\Leaderboard.xaml"
     this.nextWeekButton.Click += new System.Windows.RoutedEventHandler(this.NextWeekClick);
     
     #line default
     #line hidden
     return;
     case 4:
     this.prevWeekButton = ((System.Windows.Controls.Button)(target));
     
     #line 25 "..\..\Leaderboard.xaml"
     this.prevWeekButton.Click += new System.Windows.RoutedEventHandler(this.PrevWeekClick);
     
     #line default
     #line hidden
     return;
     case 5:
     this.LineGraph = ((System.Windows.Controls.Button)(target));
     
     #line 26 "..\..\Leaderboard.xaml"
     this.LineGraph.Click += new System.Windows.RoutedEventHandler(this.LineGraph_Click);
     
     #line default
     #line hidden
     return;
     case 6:
     this.BarGraph = ((System.Windows.Controls.Button)(target));
     
     #line 27 "..\..\Leaderboard.xaml"
     this.BarGraph.Click += new System.Windows.RoutedEventHandler(this.BarGraph_Click);
     
     #line default
     #line hidden
     return;
     case 7:
     this.tournamentButton = ((System.Windows.Controls.Button)(target));
     
     #line 28 "..\..\Leaderboard.xaml"
     this.tournamentButton.Click += new System.Windows.RoutedEventHandler(this.TournamentBracketClick);
     
     #line default
     #line hidden
     return;
     case 8:
     this.lineChart = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
     return;
     case 9:
     this.YAxis = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
     return;
     case 10:
     this.lineZoom = ((System.Windows.Controls.Slider)(target));
     
     #line 44 "..\..\Leaderboard.xaml"
     this.lineZoom.ValueChanged += new System.Windows.RoutedPropertyChangedEventHandler<double>(this.lineZoom_ValueChanged);
     
     #line default
     #line hidden
     return;
     case 11:
     this.allBar = ((System.Windows.Controls.Grid)(target));
     return;
     case 12:
     this.barCol1 = ((System.Windows.Controls.StackPanel)(target));
     return;
     case 13:
     this.b1 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 14:
     this.b2 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 15:
     this.b3 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 16:
     this.b4 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 17:
     this.b5 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 18:
     this.b6 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 19:
     this.b7 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 20:
     this.b8 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 21:
     this.b9 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 22:
     this.b10 = ((System.Windows.Controls.ProgressBar)(target));
     return;
     case 23:
     this.barCol3 = ((System.Windows.Controls.StackPanel)(target));
     return;
     case 24:
     this.n1 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 25:
     this.n2 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 26:
     this.n3 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 27:
     this.n4 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 28:
     this.n5 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 29:
     this.n6 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 30:
     this.n7 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 31:
     this.n8 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 32:
     this.n9 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 33:
     this.n10 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 34:
     this.barCol2 = ((System.Windows.Controls.StackPanel)(target));
     return;
     case 35:
     this.s1 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 36:
     this.s2 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 37:
     this.s3 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 38:
     this.s4 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 39:
     this.s5 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 40:
     this.s6 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 41:
     this.s7 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 42:
     this.s8 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 43:
     this.s9 = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 44:
     this.s10 = ((System.Windows.Controls.TextBlock)(target));
     return;
     }
     this._contentLoaded = true;
 }
Example #20
0
        private void RenderFinishSingleChart(List<List<StringDataValue>> stratifiedValues)
        {
            waitPanel.Visibility = System.Windows.Visibility.Collapsed;
            pnlMain.Children.Clear();

            Chart chart = new Chart();
            chart.Loaded += new RoutedEventHandler(chart_Loaded);
            chart.BorderThickness = new Thickness(0);
            LinearAxis dependentAxis = new LinearAxis();
            dependentAxis.Minimum = 0;
            dependentAxis.ShowGridLines = (bool)checkboxShowHorizontalGridLines.IsChecked;

            CategoryAxis independentAxis = new CategoryAxis();
            independentAxis.Orientation = AxisOrientation.X;

            foreach (List<StringDataValue> dataValues in stratifiedValues)
            {
                DataPointSeries series;
                LineSeries avgSeries = null;

                switch (((ComboBoxItem)cbxChartType.SelectedItem).Content.ToString())
                {
                    case "Bar":
                        series = new BarSeries();
                        dependentAxis.Orientation = AxisOrientation.X;
                        ((BarSeries)series).DependentRangeAxis = dependentAxis;

                        chart.PlotAreaStyle = new Style();
                        chart.PlotAreaStyle.Setters.Add(new Setter(Chart.BackgroundProperty, Brushes.White));

                        dependentAxis.GridLineStyle = new Style();
                        dependentAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, Brushes.LightGray));

                        chart.Palette = (System.Collections.ObjectModel.Collection<ResourceDictionary>)this.Resources["defaultBarPalette"];

                        break;
                    case "Column":
                        series = new ColumnSeries();
                        if (DashboardHelper.IsColumnText(cbxSingleField.SelectedItem.ToString()) && axisLabelMaxLength > 5)
                            independentAxis.AxisLabelStyle = Resources["RotateAxisStyle90"] as Style;

                        ((ColumnSeries)series).IndependentAxis = independentAxis;
                        dependentAxis.Orientation = AxisOrientation.Y;
                        ((ColumnSeries)series).DependentRangeAxis = dependentAxis;

                        chart.PlotAreaStyle = new Style();
                        chart.PlotAreaStyle.Setters.Add(new Setter(Chart.BackgroundProperty, Brushes.White));

                        dependentAxis.GridLineStyle = new Style();
                        dependentAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, Brushes.LightGray));

                        chart.Palette = (System.Collections.ObjectModel.Collection<ResourceDictionary>)this.Resources["defaultColumnPalette"];

                        //series.Effect = this.Resources["shadowEffect"] as System.Windows.Media.Effects.DropShadowEffect;

                        dependentAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, Brushes.LightGray));
                        //<Setter Property="Effect" Value="{StaticResource shadowEffect}"/>-->

                        break;
                    case "Pareto":
                        series = new ColumnSeries();
                        if (DashboardHelper.IsColumnText(cbxSingleField.SelectedItem.ToString()) && axisLabelMaxLength > 5)
                            independentAxis.AxisLabelStyle = Resources["RotateAxisStyle90"] as Style;
                        ((ColumnSeries)series).IndependentAxis = independentAxis;
                        dependentAxis.Orientation = AxisOrientation.Y;
                        ((ColumnSeries)series).DependentRangeAxis = dependentAxis;

                        LinearAxis percentAxis = new LinearAxis();
                        percentAxis.Minimum = 0;
                        percentAxis.Maximum = 100;
                        percentAxis.ShowGridLines = (bool)checkboxShowHorizontalGridLines.IsChecked;
                        percentAxis.Orientation = AxisOrientation.Y;
                        percentAxis.Location = AxisLocation.Right;

                        avgSeries = new LineSeries();
                        avgSeries.IndependentValuePath = "IndependentValue";
                        avgSeries.DependentValuePath = "CurrentMeanValue";
                        avgSeries.Title = "Accumulated %";
                        avgSeries.DependentRangeAxis = percentAxis;
                        avgSeries.IndependentAxis = independentAxis;
                        avgSeries.PolylineStyle = Resources["GooglePolylineStyle"] as Style;
                        avgSeries.DataPointStyle = Resources["GoogleDataPointStyle"] as Style;

                        chart.PlotAreaStyle = new Style();
                        chart.PlotAreaStyle.Setters.Add(new Setter(Chart.BackgroundProperty, Brushes.White));

                        dependentAxis.GridLineStyle = new Style();
                        dependentAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, Brushes.LightGray));

                        //series.Effect = this.Resources["shadowEffect"] as System.Windows.Media.Effects.DropShadowEffect;

                        chart.Palette = (System.Collections.ObjectModel.Collection<ResourceDictionary>)this.Resources["defaultColumnPalette"];

                        break;
                    case "Line":
                        series = new LineSeries();
                        if (DashboardHelper.IsColumnText(cbxSingleField.SelectedItem.ToString()) && axisLabelMaxLength > 5)
                            independentAxis.AxisLabelStyle = Resources["RotateAxisStyle90"] as Style;
                        ((LineSeries)series).IndependentAxis = independentAxis;
                        dependentAxis.Orientation = AxisOrientation.Y;
                        ((LineSeries)series).DependentRangeAxis = dependentAxis;
                        break;
                    case "Pie":
                        if (stratifiedValues.Count > 1)
                        {
                            if (dataValues.Count > 0)
                            {
                                Label lblStrata = new Label();
                                lblStrata.Margin = new Thickness(0, 10, 0, 0);
                                lblStrata.FontWeight = FontWeights.Bold;
                                lblStrata.Content = dataValues[0].StratificationValue;
                                pnlMain.Children.Add(lblStrata);
                            }
                        }
                        chart = new LabeledPieChart();
                        chart.Loaded += new RoutedEventHandler(chart_Loaded);
                        chart.BorderThickness = new Thickness(0);
                        series = new LabeledPieSeries();
                        series.LegendItemStyle = Resources["PieLegendStyle"] as Style;
                        ((LabeledPieSeries)series).PieChartLabelStyle=Resources["pieChartLabelStyle"] as Style;
                        ((LabeledPieSeries)series).PieChartLabelItemTemplate=Resources["pieChartLabelDataTemplate"] as DataTemplate;
                        ((LabeledPieSeries)series).LabelDisplayMode = DisplayMode.Auto;
                        chart.LegendTitle = cbxSingleField.SelectedItem.ToString();
                        chart.Series.Add(series);
                        chart.Height = 600;
                        chart.Width = 920;

                        chart.Margin = new Thickness(50, 0, 0, 0);

                        chart.PlotAreaStyle = new Style();
                        chart.PlotAreaStyle.Setters.Add(new Setter(Chart.BackgroundProperty, Brushes.White));

                        dependentAxis.GridLineStyle = new Style();
                        dependentAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, Brushes.LightGray));

                        chart.Palette = (System.Collections.ObjectModel.Collection<ResourceDictionary>)this.Resources["defaultPiePalette"];

                        pnlMain.Children.Add(chart);
                        break;
                    case "Scatter":
                        series = new ScatterSeries();
                        dependentAxis.Orientation = AxisOrientation.Y;
                        ((ScatterSeries)series).DependentRangeAxis = dependentAxis;
                        break;
                    default:
                        series = new LineSeries();
                        dependentAxis.Orientation = AxisOrientation.Y;
                        ((LineSeries)series).DependentRangeAxis = dependentAxis;
                        break;
                }

                series.IndependentValuePath = "IndependentValue";
                series.DependentValuePath = "DependentValue";

                series.ItemsSource = dataValues;
                if (avgSeries != null)
                {
                    List<StringDataValue> paretoDataValues = new List<StringDataValue>(dataValues);

                    double max = 0;

                    foreach (StringDataValue sdv in paretoDataValues)
                    {
                        max = max + sdv.DependentValue;
                    }

                    double runningPercent = 0;
                    foreach (StringDataValue sdv in paretoDataValues)
                    {
                        sdv.CurrentMeanValue = ((sdv.DependentValue / max) * 100) + runningPercent;
                        runningPercent = sdv.CurrentMeanValue;
                    }

                    avgSeries.ItemsSource = paretoDataValues;
                }

                if (stratifiedValues.Count > 1)
                {
                    if (!(series is LabeledPieSeries) && cbxStrataField.SelectedIndex > -1)
                    {
                        chart.LegendTitle = cbxStrataField.SelectedItem.ToString();
                    }

                    if (dataValues.Count > 0 && !IsBooleanWithNoStratas)
                    {
                        series.Title = dataValues[0].StratificationValue.Split('=')[1].Trim();
                    }
                    else if (dataValues.Count > 0 && IsBooleanWithNoStratas)
                    {
                        series.Title = dataValues[0].StratificationValue.Trim();
                        chart.LegendTitle = dataValues[0].IndependentValue;
                    }
                }
                else
                {
                    series.Title = "Count";
                }

                if (series is LabeledPieSeries)
                {
                    //chart.Height = 600;
                    //chart.Width = 800;
                }
                else if (series is BarSeries)
                {
                    if (dataValues.Count > 30)
                        chart.Height = dataValues.Count * 30;
                    else
                        chart.Height = 600;
                    chart.Width = 800;
                }
                else
                {
                    chart.Height = 600;
                    if (dataValues.Count > 20)
                        chart.Width = dataValues.Count * 40;
                    else
                        chart.Width = 800;
                }
                if (!(series is LabeledPieSeries))
                {
                    chart.Series.Add(series);
                    if (avgSeries != null)
                    {
                        chart.Series.Add(avgSeries);
                    }
                }

                ///////////////////////////////////////////////////////
                string chartSize = "Medium";

                if (GadgetOptions == null)
                {
                    return;
                }

                if (GadgetOptions.InputVariableList != null && GadgetOptions.InputVariableList.ContainsKey("chartsize"))
                {
                    chartSize = GadgetOptions.InputVariableList["chartsize"];
                }

                switch (chartSize)
                {
                    case "Small":
                        chart.Height = chart.Height / 2;
                        chart.Width = chart.Width / 2;
                        break;
                    case "Medium":
                        chart.Height = chart.Height / 1.5;
                        chart.Width = chart.Width / 1.5;
                        break;
                    case "Custom":
                        if (GadgetOptions.InputVariableList.ContainsKey("chartheight"))
                        {
                            int height;
                            bool success = int.TryParse(GadgetOptions.InputVariableList["chartheight"], out height);
                            if (success)
                            {
                                chart.Height = height;
                            }
                        }
                        if (GadgetOptions.InputVariableList.ContainsKey("chartwidth"))
                        {
                            int width;
                            bool success = int.TryParse(GadgetOptions.InputVariableList["chartwidth"], out width);
                            if (success)
                            {
                                chart.Width = width;
                            }
                        }
                        break;
                }
                ///////////////////////////////////////////////////////
            }
            if (!((ComboBoxItem)cbxChartType.SelectedItem).Content.ToString().Equals("Pie"))
            {
                pnlMain.Children.Add(chart);
            }
        }
Example #21
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.mainWD = ((SHIV_PhongCachAm.MainWindow)(target));

            #line 10 "..\..\..\MainWindow.xaml"
                this.mainWD.Closing += new System.ComponentModel.CancelEventHandler(this.mainWD_Closing);

            #line default
            #line hidden
                return;

            case 2:

            #line 175 "..\..\..\MainWindow.xaml"
                ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.EventF1Push_Process);

            #line default
            #line hidden
                return;

            case 3:

            #line 176 "..\..\..\MainWindow.xaml"
                ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.EventF8Push_Process);

            #line default
            #line hidden
                return;

            case 4:

            #line 177 "..\..\..\MainWindow.xaml"
                ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.EventF10Push_Process);

            #line default
            #line hidden
                return;

            case 5:

            #line 178 "..\..\..\MainWindow.xaml"
                ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.EventSPush_Process);

            #line default
            #line hidden
                return;

            case 6:

            #line 179 "..\..\..\MainWindow.xaml"
                ((System.Windows.Input.CommandBinding)(target)).Executed += new System.Windows.Input.ExecutedRoutedEventHandler(this.EventOPush_Process);

            #line default
            #line hidden
                return;

            case 7:
                this.lblTimerCycle = ((System.Windows.Controls.Label)(target));
                return;

            case 8:
                this.lblStatus = ((System.Windows.Controls.Label)(target));
                return;

            case 9:
                this.lblDatetime = ((System.Windows.Controls.Label)(target));

            #line 213 "..\..\..\MainWindow.xaml"
                this.lblDatetime.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.lblDatetime_PreviewMouseDown);

            #line default
            #line hidden
                return;

            case 10:
                this.lblLanguage = ((System.Windows.Controls.Label)(target));

            #line 215 "..\..\..\MainWindow.xaml"
                this.lblLanguage.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.lblLanguage_PreviewMouseDown);

            #line default
            #line hidden
                return;

            case 11:
                this.lblNguoiVanhanh = ((System.Windows.Controls.Label)(target));

            #line 250 "..\..\..\MainWindow.xaml"
                this.lblNguoiVanhanh.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.lblNguoiVanhanh_PreviewMouseDown);

            #line default
            #line hidden
                return;

            case 12:
                this.lblPID = ((System.Windows.Controls.Label)(target));
                return;

            case 13:
                this.lblMaOrder = ((System.Windows.Controls.Label)(target));

            #line 272 "..\..\..\MainWindow.xaml"
                this.lblMaOrder.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.lblMaOrder_PreviewMouseDown);

            #line default
            #line hidden
                return;

            case 14:
                this.chk1PhaOrder = ((System.Windows.Controls.CheckBox)(target));
                return;

            case 15:
                this.lblMotaSanpham = ((System.Windows.Controls.Label)(target));
                return;

            case 16:
                this.lblSTTSanpham = ((System.Windows.Controls.Label)(target));

            #line 295 "..\..\..\MainWindow.xaml"
                this.lblSTTSanpham.DataContextChanged += new System.Windows.DependencyPropertyChangedEventHandler(this.lblSTTSanpham_DataContextChanged);

            #line default
            #line hidden

            #line 296 "..\..\..\MainWindow.xaml"
                this.lblSTTSanpham.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.lblSTTSanpham_MouseDown);

            #line default
            #line hidden
                return;

            case 17:
                this.lblGiamtoc = ((System.Windows.Controls.Label)(target));
                return;

            case 18:
                this.lblDienapChuan = ((System.Windows.Controls.Label)(target));
                return;

            case 19:
                this.lblDienapThucte = ((System.Windows.Controls.Label)(target));
                return;

            case 20:
                this.lblTansoChuan = ((System.Windows.Controls.Label)(target));
                return;

            case 21:
                this.lblTansoThucte = ((System.Windows.Controls.Label)(target));
                return;

            case 22:
                this.lblTcVongquay = ((System.Windows.Controls.Label)(target));
                return;

            case 23:
                this.lblVongquayFwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 24:
                this.lblVongquayBwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 25:
                this.lblVongquayLech = ((System.Windows.Controls.Label)(target));
                return;

            case 26:
                this.lblOKVongquay = ((System.Windows.Controls.Label)(target));
                return;

            case 27:
                this.lblNGVongquay = ((System.Windows.Controls.Label)(target));
                return;

            case 28:
                this.lblHuongquayMax = ((System.Windows.Controls.Label)(target));
                return;

            case 29:
                this.lblOKXuatluc = ((System.Windows.Controls.Label)(target));
                return;

            case 30:
                this.lblNGXuatluc = ((System.Windows.Controls.Label)(target));
                return;

            case 31:
                this.lblTcDongdien = ((System.Windows.Controls.Label)(target));
                return;

            case 32:
                this.lblDongdienFwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 33:
                this.lblDongdienBwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 34:
                this.lblDongdienLech = ((System.Windows.Controls.Label)(target));
                return;

            case 35:
                this.lblOKDongdien = ((System.Windows.Controls.Label)(target));
                return;

            case 36:
                this.lblNGDongdien = ((System.Windows.Controls.Label)(target));
                return;

            case 37:
                this.lblTCNhapluc = ((System.Windows.Controls.Label)(target));
                return;

            case 38:
                this.lblNhaplucFwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 39:
                this.lblNhaplucBwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 40:
                this.lblNhaplucLech = ((System.Windows.Controls.Label)(target));
                return;

            case 41:
                this.lblOKNhapluc = ((System.Windows.Controls.Label)(target));
                return;

            case 42:
                this.lblNGNhapluc = ((System.Windows.Controls.Label)(target));
                return;

            case 43:
                this.lblTcDorung = ((System.Windows.Controls.Label)(target));
                return;

            case 44:
                this.lblDorungFwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 45:
                this.lblDorungBwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 46:
                this.lblDorungLech = ((System.Windows.Controls.Label)(target));
                return;

            case 47:
                this.lblOKDorung = ((System.Windows.Controls.Label)(target));
                return;

            case 48:
                this.lblNGDorung = ((System.Windows.Controls.Label)(target));
                return;

            case 49:
                this.lblTcTiengon = ((System.Windows.Controls.Label)(target));
                return;

            case 50:
                this.lblTiengonFwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 51:
                this.lblTiengonBwdMax = ((System.Windows.Controls.Label)(target));
                return;

            case 52:
                this.lblTiengonLech = ((System.Windows.Controls.Label)(target));
                return;

            case 53:
                this.lblOKTiengon = ((System.Windows.Controls.Label)(target));
                return;

            case 54:
                this.lblNGTiengon = ((System.Windows.Controls.Label)(target));
                return;

            case 55:
                this.lblAmsacThuan = ((System.Windows.Controls.Label)(target));
                return;

            case 56:
                this.lblAmsacNghich = ((System.Windows.Controls.Label)(target));
                return;

            case 57:
                this.lblOKAmsac = ((System.Windows.Controls.Label)(target));
                return;

            case 58:
                this.lblNGAmsac = ((System.Windows.Controls.Label)(target));
                return;

            case 59:
                this.LineChart1 = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 60:
                this.LineChartChild = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;

            case 61:
                this.valueSettingYRange = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 62:
                this.LineChartChild_TempTiengon = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;

            case 63:
                this.LineChartMax = ((System.Windows.Controls.DataVisualization.Charting.LineSeries)(target));
                return;

            case 64:
                this.btnF1 = ((System.Windows.Controls.Label)(target));

            #line 660 "..\..\..\MainWindow.xaml"
                this.btnF1.PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.btnF1_PreviewMouseDown);

            #line default
            #line hidden
                return;

            case 65:
                this.btnF3 = ((System.Windows.Controls.Label)(target));

            #line 663 "..\..\..\MainWindow.xaml"
                this.btnF3.MouseDown += new System.Windows.Input.MouseButtonEventHandler(this.btnF3_MouseDown);

            #line default
            #line hidden
                return;

            case 66:

            #line 666 "..\..\..\MainWindow.xaml"
                ((System.Windows.Controls.Label)(target)).PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.EventF10Push_Process_Mouse);

            #line default
            #line hidden
                return;

            case 67:

            #line 669 "..\..\..\MainWindow.xaml"
                ((System.Windows.Controls.Label)(target)).PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.LabelF9_PreviewMouseDown);

            #line default
            #line hidden
                return;

            case 68:

            #line 672 "..\..\..\MainWindow.xaml"
                ((System.Windows.Controls.Label)(target)).PreviewMouseDown += new System.Windows.Input.MouseButtonEventHandler(this.EventF8Push_Process);

            #line default
            #line hidden
                return;
            }
            this._contentLoaded = true;
        }
 public void AbleToSetMinimumMaximumOnDependentAxis()
 {
     Chart chart = new Chart();
     ColumnSeries series = new ColumnSeries();
     series.ItemsSource = new int[] { 1, 2, 3 };
     LinearAxis dependentAxis = new LinearAxis { Orientation = AxisOrientation.Y };
     series.DependentRangeAxis = dependentAxis;
     chart.Series.Add(series);
     TestAsync(
         chart,
         () => Assert.AreEqual(3, ChartTestUtilities.GetDataPointsForSeries(series).Count()),
         () => dependentAxis.Maximum = 5,
         () => Assert.AreEqual(3, ChartTestUtilities.GetDataPointsForSeries(series).Count()),
         () => dependentAxis.Minimum = 0.5,
         () => Assert.AreEqual(3, ChartTestUtilities.GetDataPointsForSeries(series).Count()));
 }
Example #23
0
        void dbCol1_GetRecordsCompleted(object sender, GetRecordsCompletedEventArgs e)
        {
         
            if (e.Error == null)
            {
                List<EstCol> estCols = GenerateColData1(e.Result);
                Dictionary<string, ColChart> ColValue = new Dictionary<string, ColChart>();
                ColChart chart;

                foreach (EstCol estcol in estCols)
                {
                    if (!ColValue.ContainsKey(estcol.Nm))
                        ColValue.Add(estcol.Nm, new ColChart()
                        {
                            Title = estcol.Nm,
                            ItemSource = new List<EstCol> { new EstCol() { Amount = estcol.Amount, Month = estcol.Month } },
                        });
                    else
                    {
                        chart = ColValue[estcol.Nm];
                        List<EstCol> amt = chart.ItemSource;
                        amt.Add(new EstCol() { Amount = estcol.Amount, Month = estcol.Month });
                    }
                }            


                pieChart.Series.Clear();
                int i = 0;
                foreach (KeyValuePair<string, ColChart> kvp in ColValue)
                {
                    DataPointSeries series = new ColumnSeries();
                    series.Title = (kvp.Value).Title;
                    series.ItemsSource = (kvp.Value).ItemSource;                    
                    series.DependentValuePath = "Amount";
                    series.IndependentValuePath = "Month";                    
                    if (i == 0)
                    {
                        Style style = new Style(typeof(Control));
                        Setter str1 = new Setter(Control.BackgroundProperty, new SolidColorBrush(GetColorFromHexa("#FF938C39")));
                        style.Setters.Add(str1);
                        series.DataPointStyle = style;
                    }
                    else
                    {
                        Style style = new Style(typeof(Control));
                        Setter str1 = new Setter(Control.BackgroundProperty, new SolidColorBrush(GetColorFromHexa("#FF70282B")));
                        style.Setters.Add(str1);
                        series.DataPointStyle = style;
                    }
                    pieChart.Series.Add(series);
                    i++;
                }

                CategoryAxis xAxis = new CategoryAxis();                
                xAxis.Title = "月(" + dateFrom.ToString("yyyy/MM/dd") + " ~ " + dateTo.ToString("yyyy/MM/dd") + ")";
                xAxis.SortOrder = CategorySortOrder.Ascending;
                //xAxis.Orientation = AxisOrientation.X;                
                pieChart.Axes.Add(xAxis);
                LinearAxis yAxis = new LinearAxis();
                yAxis.Title = "金額(万)";
                yAxis.Orientation = AxisOrientation.Y;
                pieChart.Axes.Add(yAxis);
                yAxis.Minimum = 0;
            }
        }
Example #24
0
        private void RenderFinishEpiCurve(DataTable data, List<List<StringDataValue>> dataValues)
        {
            waitPanel.Visibility = System.Windows.Visibility.Collapsed;

            StackedHistogramSeries stackedSeries = new StackedHistogramSeries();
            LinearAxis axis = new LinearAxis();
            axis.Orientation = AxisOrientation.Y;
            axis.Minimum = 0;
            axis.ShowGridLines = (bool)checkboxShowHorizontalGridLines.IsChecked; //true;
            stackedSeries.DependentAxis = axis;
            CategoryAxis independentAxis = new CategoryAxis();
            independentAxis.Orientation = AxisOrientation.X;

            double extraRightPadding = 0;

            if (!DashboardHelper.IsColumnNumeric(cbxDateField.SelectedItem.ToString()))
            {
                if (cbxXAxisLabelRotation.SelectedIndex == -1 || ((ComboBoxItem)cbxXAxisLabelRotation.SelectedItem).Content.ToString().Equals("90"))
                {
                    independentAxis.AxisLabelStyle = Resources["RotateAxisStyle90"] as Style;
                }
                else if (cbxXAxisLabelRotation.SelectedIndex >= 0 && ((ComboBoxItem)cbxXAxisLabelRotation.SelectedItem).Content.ToString().Equals("45"))
                {
                    independentAxis.AxisLabelStyle = Resources["RotateAxisStyle45"] as Style;
                    extraRightPadding = 50;
                }
            }

            stackedSeries.IndependentAxis = independentAxis;

            int counter = 1;
            foreach (var values in dataValues)
            {
                SeriesDefinition definition = new SeriesDefinition();
                definition.DependentValuePath = "DependentValue";
                definition.IndependentValuePath = "IndependentValue";
                if (cbxCaseStatusField.SelectedIndex >= 0 && !string.IsNullOrEmpty(cbxCaseStatusField.SelectedItem.ToString()))
                {
                    Field field = null;
                    foreach (DataRow fieldRow in DashboardHelper.FieldTable.Rows)
                    {
                        if (fieldRow["columnname"].Equals(cbxCaseStatusField.SelectedItem.ToString()))
                        {
                            if (fieldRow["epifieldtype"] is Field)
                            {
                                field = fieldRow["epifieldtype"] as Field;
                            }
                            break;
                        }
                    }

                    if (field != null && (field is YesNoField || field is CheckBoxField))
                    {
                        string value = data.Columns[counter].ColumnName;

                        if (value.ToLower().Equals("true") || value.Equals("1"))
                        {
                            definition.Title = DashboardHelper.Config.Settings.RepresentationOfYes;
                        }
                        else if (value.ToLower().Equals("false") || value.Equals("0"))
                        {
                            definition.Title = DashboardHelper.Config.Settings.RepresentationOfNo;
                        }
                        else
                        {
                            definition.Title = cbxCaseStatusField.SelectedItem.ToString();
                        }
                    }
                    else
                    {
                        definition.Title = data.Columns[counter].ColumnName;
                    }
                }
                else
                {
                    definition.Title = SharedStrings.DEFAULT_CHART_LEGEND_ITEM;
                }
                definition.ItemsSource = values;
                //definition.DataPointStyle = this.Resources["epiCurveDataPointStyle"] as Style;

                stackedSeries.SeriesDefinitions.Add(definition);
                counter++;
            }

            Chart chart = new Chart();

            if (dataValues.Count == 1)
            {
                chart.LegendStyle = this.Resources["noLegendStyle"] as Style;
            }

            chart.PlotAreaStyle = new Style();
            chart.PlotAreaStyle.Setters.Add(new Setter(Chart.BackgroundProperty, Brushes.White));

            axis.GridLineStyle = new Style();
            axis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, Brushes.LightGray));

            chart.Palette = (System.Collections.ObjectModel.Collection<ResourceDictionary>)this.Resources["defaultColumnPalette"];

            //stackedSeries

            chart.BorderThickness = new Thickness(0);
            chart.Loaded += new RoutedEventHandler(chart_Loaded);
            chart.Series.Add(stackedSeries);
            chart.Height = 500;
            chart.Width = (stackedSeries.IndependentValueCount * 25) + 150;

            chart.Margin = new Thickness(chart.Margin.Left, chart.Margin.Top, chart.Margin.Right + extraRightPadding, chart.Margin.Bottom);

            pnlMain.Children.Clear();
            pnlMain.Children.Add(chart);

            SetChartLabels(ChartTitle, LegendTitle, XAxisLabel, YAxisLabel);
        }
 public void CustomMinimumAndMaximumAreRespectedViaStyle()
 {
     Chart chart = new Chart();
     LinearAxis horizontalAxis = new LinearAxis { Orientation = AxisOrientation.X };
     Style horizontalStyle = new Style(typeof(LinearAxis));
     horizontalStyle.Setters.Add(new Setter(LinearAxis.MinimumProperty, 50.0));
     horizontalStyle.Setters.Add(new Setter(LinearAxis.MaximumProperty, 120.0));
     horizontalAxis.Style = horizontalStyle;
     chart.Axes.Add(horizontalAxis);
     LinearAxis verticalAxis = new LinearAxis { Orientation = AxisOrientation.Y };
     Style verticalStyle = new Style(typeof(LinearAxis));
     verticalStyle.Setters.Add(new Setter(LinearAxis.MinimumProperty, 40.0));
     verticalStyle.Setters.Add(new Setter(LinearAxis.MaximumProperty, 130.0));
     verticalAxis.Style = verticalStyle;
     chart.Axes.Add(verticalAxis);
     ScatterSeries series = new ScatterSeries();
     series.IndependentValueBinding = new Binding();
     series.ItemsSource = new int[] { 100 };
     chart.Series.Add(series);
     TestAsync(
         chart,
         () => Assert.AreEqual(50, horizontalAxis.ActualMinimum),
         () => Assert.AreEqual(120, horizontalAxis.ActualMaximum),
         () => Assert.AreEqual(40, verticalAxis.ActualMinimum),
         () => Assert.AreEqual(130, verticalAxis.ActualMaximum));
 }
 /// <summary>
 /// Generates value/value Series samples.
 /// </summary>
 /// <param name="panel">Panel to add the generated Charts to.</param>
 /// <param name="seriesConstructor">Function that returns a Series instance for each sample.</param>
 public static void GenerateDateTimeValueSeriesSamples(Panel panel, Func<Series> seriesConstructor)
 {
     Scenario[] scenarios = new Scenario[]
     {
         new Scenario { Title = "Value by Date", ItemsSource = _dynamicDateItemsSource, DependentValueBinding = new Binding("Second"), IndependentValueBinding = new Binding("First") },
     };
     Action<Chart> chartModifier = (chart) =>
     {
         IAxis dateAxis = new DateTimeAxis { Orientation = AxisOrientation.X };
         chart.Axes.Add(dateAxis);
         IAxis valueAxis = new LinearAxis { Orientation = AxisOrientation.Y, Minimum = 0, Maximum = 20, ShowGridLines = true };
         chart.Axes.Add(valueAxis);
     };
     GenerateSeriesSamples(panel, seriesConstructor, scenarios, chartModifier);
 }
 public void TitleCentersProperlyAfterUpdate()
 {
     Chart chart = new Chart();
     LinearAxis horizontalAxis = new LinearAxis { Orientation = AxisOrientation.X, Title = "Filler Text" };
     chart.Axes.Add(horizontalAxis);
     LinearAxis verticalAxis = new LinearAxis { Orientation = AxisOrientation.Y, Title = "Sample Title" };
     chart.Axes.Add(verticalAxis);
     Title horizontalTitle = null;
     Title verticalTitle = null;
     TestAsync(
         chart,
         () =>
         {
             horizontalTitle = horizontalAxis.GetVisualDescendents().OfType<Title>().First();
             verticalTitle = verticalAxis.GetVisualDescendents().OfType<Title>().First();
         },
         () =>
         {
             Point xLeftTop = horizontalTitle.TransformToVisual(horizontalAxis).Transform(new Point());
             Assert.AreEqual(Math.Round(xLeftTop.X), Math.Round((horizontalAxis.ActualWidth - horizontalTitle.ActualWidth) / 2));
             Point yLeftTop = verticalTitle.TransformToVisual(verticalAxis).Transform(new Point());
             Assert.AreEqual(Math.Round(yLeftTop.Y), Math.Round((verticalAxis.ActualHeight + verticalTitle.ActualWidth) / 2));
         },
         () =>
         {
             horizontalAxis.Title = "Much longer filler text";
             verticalAxis.Title = new Rectangle { Width = 100, Height = 10 };
         },
         () =>
         {
             Point xLeftTop = horizontalTitle.TransformToVisual(horizontalAxis).Transform(new Point());
             Assert.AreEqual(Math.Round(xLeftTop.X), Math.Round((horizontalAxis.ActualWidth - horizontalTitle.ActualWidth) / 2));
             Point yLeftTop = verticalTitle.TransformToVisual(verticalAxis).Transform(new Point());
             Assert.AreEqual(Math.Round(yLeftTop.Y), Math.Round((verticalAxis.ActualHeight + verticalTitle.ActualWidth) / 2));
         });
 }
 /// <summary>
 /// Acquires an independent axis suitable for use with the data values of the series.
 /// </summary>
 /// <returns>Axis instance.</returns>
 protected override IAxis AcquireIndependentAxis()
 {
     IAxis independentAxis = SeriesHost.Axes
         .Where(a => (a.Orientation == AxisOrientation.X) && ((a is IRangeAxis) || (a is ICategoryAxis)) && DataItems.Any() && (a.CanPlot(DataItems.First().ActualIndependentValue)))
         .FirstOrDefault();
     if (null == independentAxis)
     {
         object probeValue = DataItems.Any() ? DataItems.First().ActualIndependentValue : null;
         double convertedDouble;
         DateTime convertedDateTime;
         if ((null != probeValue) && ValueHelper.TryConvert(probeValue, out convertedDouble))
         {
             independentAxis = new LinearAxis();
         }
         else if ((null != probeValue) && ValueHelper.TryConvert(probeValue, out convertedDateTime))
         {
             independentAxis = new DateTimeAxis();
         }
         else
         {
             independentAxis = new CategoryAxis();
         }
         independentAxis.Orientation = AxisOrientation.X;
     }
     return independentAxis;
 }
 public void AddingAxisWithGridlinesDoesNotCauseException()
 {
     Chart chart = new Chart();
     LinearAxis axis = new LinearAxis { Orientation = AxisOrientation.X, ShowGridLines = true };
     chart.Axes.Add(axis);
 }
Example #30
0
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
        {
            switch (connectionId)
            {
            case 1:
                this.Mainwindow = ((UV_convertor.MainWindow)(target));
                return;

            case 2:
                this.Gservice = ((System.Windows.Controls.Grid)(target));

            #line 107 "..\..\MainWindow.xaml"
                this.Gservice.MouseEnter += new System.Windows.Input.MouseEventHandler(this.Gservice_MouseEnter);

            #line default
            #line hidden

            #line 107 "..\..\MainWindow.xaml"
                this.Gservice.MouseLeave += new System.Windows.Input.MouseEventHandler(this.Gservice_MouseLeave);

            #line default
            #line hidden

            #line 107 "..\..\MainWindow.xaml"
                this.Gservice.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Label_MouseLeftButtonDown);

            #line default
            #line hidden
                return;

            case 3:
                this.Gservice_measurement = ((System.Windows.Controls.Grid)(target));
                return;

            case 4:
                this.gmeasurement = ((System.Windows.Controls.Grid)(target));

            #line 110 "..\..\MainWindow.xaml"
                this.gmeasurement.MouseEnter += new System.Windows.Input.MouseEventHandler(this.gmeasurement_MouseEnter);

            #line default
            #line hidden

            #line 110 "..\..\MainWindow.xaml"
                this.gmeasurement.MouseLeave += new System.Windows.Input.MouseEventHandler(this.gmeasurement_MouseLeave);

            #line default
            #line hidden

            #line 110 "..\..\MainWindow.xaml"
                this.gmeasurement.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.GBSetting_MouseLeftButtonDown_1);

            #line default
            #line hidden
                return;

            case 5:
                this.GClose = ((System.Windows.Controls.Grid)(target));

            #line 115 "..\..\MainWindow.xaml"
                this.GClose.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.Gmin_MouseLeftButtonDown);

            #line default
            #line hidden

            #line 115 "..\..\MainWindow.xaml"
                this.GClose.MouseLeave += new System.Windows.Input.MouseEventHandler(this.GClose_MouseLeave);

            #line default
            #line hidden

            #line 115 "..\..\MainWindow.xaml"
                this.GClose.MouseEnter += new System.Windows.Input.MouseEventHandler(this.GClose_MouseEnter);

            #line default
            #line hidden
                return;

            case 6:
                this.RCLose = ((System.Windows.Shapes.Rectangle)(target));
                return;

            case 7:
                this.GMin = ((System.Windows.Controls.Grid)(target));

            #line 138 "..\..\MainWindow.xaml"
                this.GMin.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(this.GMin_MouseLeftButtonDown_1);

            #line default
            #line hidden
                return;

            case 8:
                this.RMIN = ((System.Windows.Shapes.Rectangle)(target));
                return;

            case 9:
                this.grdMain = ((System.Windows.Controls.Grid)(target));
                return;

            case 10:
                this.simChart = ((System.Windows.Controls.DataVisualization.Charting.Chart)(target));
                return;

            case 11:
                this.linex = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;

            case 12:
                this.liney = ((System.Windows.Controls.DataVisualization.Charting.LinearAxis)(target));
                return;
            }
            this._contentLoaded = true;
        }
        /// <summary>
        /// Get or create a linear numeric axis in the correct dimension.
        /// </summary>
        /// <param name="orientation">Dimension of the axis to create.</param>
        /// <param name="oldAxis">
        /// Old value of the axis in this dimension.
        /// </param>
        /// <returns>New value of the axis in this dimension.</returns>
        private IRangeAxis GetAxis(AxisOrientation orientation, IRangeAxis oldAxis)
        {
            // Check the existing axes for a potential axis
            IRangeAxis axis =
                (from IRangeAxis a in SeriesHost.Axes.OfType<IRangeAxis>()
                 where a.Orientation == orientation
                 select a)
                .FirstOrDefault();

            if (axis == null)
            {
                // Create a new axis if not found
                axis = new LinearAxis
                {
                    Orientation = orientation,
                };
            }

            if (oldAxis != axis)
            {
                // Unregister any existing axis
                if (oldAxis != null)
                {
                    oldAxis.RegisteredListeners.Remove(this);
                }
                
                // Register the new axis
                if (!axis.RegisteredListeners.Contains(this))
                {
                    axis.RegisteredListeners.Add(this);
                }
            }

            return axis;
        }
 private LinearAxis GetMatOutAxis(bool visible, double maximum, bool isValue, KilooMega km)
 {
     LinearAxis la = new LinearAxis();
     la.Title = "Sales Out " + Utils.GetUnitLabel_Long(_productBrand, isValue, km);
     la.Orientation = AxisOrientation.Y;
     la.Minimum = 0;
     la.Maximum = maximum;
     la.AxisLabelStyle = Application.Current.Resources["NumberFormatAxisStyle"] as Style;
     if (!visible)
     {
         la.Width = 0;
         la.Opacity = 0;
     }
     return la;
 }
        private void SetGraph(string strataValue, List<SimpleDataValue> actualValues, List<SimpleDataValue> trendValues, List<SimpleDataValue> aberrationValues, List<DataGridRow> aberrationDetails)
        {
            StackPanel chartPanel = new StackPanel();
            chartPanel.Margin = (Thickness)this.Resources["genericElementMargin"];
            chartPanel.Visibility = System.Windows.Visibility.Collapsed;
            strataPanelList.Add(chartPanel);

            if (GadgetOptions.StrataVariableNames.Count == 0)
            {
                panelMain.Children.Add(chartPanel);
            }
            else
            {
                TextBlock txtExpanderHeader = new TextBlock();
                txtExpanderHeader.Text = strataValue;
                txtExpanderHeader.Style = this.Resources["genericOutputExpanderText"] as Style;

                Expander expander = new Expander();
                expander.Margin = (Thickness)this.Resources["expanderMargin"]; //new Thickness(6, 2, 6, 6);
                expander.IsExpanded = true;
                expander.Header = txtExpanderHeader;
                expander.Visibility = System.Windows.Visibility.Collapsed;

                expander.Content = chartPanel;
                chartPanel.Tag = txtExpanderHeader.Text;
                panelMain.Children.Add(expander);
                strataExpanderList.Add(expander);
            }

            Chart chart = new Chart();

            LinearAxis dependentAxis = new LinearAxis();
            dependentAxis.Orientation = AxisOrientation.Y;
            dependentAxis.Minimum = 0;
            dependentAxis.ShowGridLines = true;

            CategoryAxis independentAxis = new CategoryAxis();
            independentAxis.Orientation = AxisOrientation.X;
            independentAxis.SortOrder = CategorySortOrder.Ascending;
            independentAxis.AxisLabelStyle = Resources["RotateAxisAberrationStyle"] as Style;

            chart.PlotAreaStyle = new Style();
            chart.PlotAreaStyle.Setters.Add(new Setter(Chart.BackgroundProperty, Brushes.White));

            dependentAxis.GridLineStyle = new Style();
            dependentAxis.GridLineStyle.Setters.Add(new Setter(Line.StrokeProperty, Brushes.LightGray));

            //System.Windows.Controls.DataVisualization.Charting.Chart.BackgroundProperty

            try
            {
                independentAxis.AxisLabelStyle.Setters.Add(new Setter(AxisLabel.StringFormatProperty, "{0:d}"));
            }
            catch (Exception)
            {
                //already added
            }

            LineSeries series1 = new LineSeries();
            series1.IndependentValuePath = "IndependentValue";
            series1.DependentValuePath = "DependentValue";
            series1.ItemsSource = actualValues;
            series1.Title = DashboardSharedStrings.GADGET_ABERRATION_ACTUAL;
            series1.DependentRangeAxis = dependentAxis;
            series1.IndependentAxis = independentAxis;

            LineSeries series2 = new LineSeries();
            series2.IndependentValuePath = "IndependentValue";
            series2.DependentValuePath = "DependentValue";
            series2.ItemsSource = trendValues;
            series2.Title = DashboardSharedStrings.GADGET_ABERRATION_EXPECTED;
            series2.DependentRangeAxis = dependentAxis;
            series2.IndependentAxis = independentAxis;
            series2.PolylineStyle = Resources["GooglePolylineAberrationStyle"] as Style;
            series2.DataPointStyle = Resources["GoogleDataPointAberrationStyle"] as Style;

            ScatterSeries series3 = new ScatterSeries();
            series3.IndependentValuePath = "IndependentValue";
            series3.DependentValuePath = "DependentValue";
            series3.ItemsSource = aberrationValues;
            series3.Title = DashboardSharedStrings.GADGET_ABERRATION;
            series3.DependentRangeAxis = dependentAxis;
            series3.IndependentAxis = independentAxis;
            series3.DataPointStyle = Resources["DataPointAberrationStyle"] as Style;

            chart.Series.Add(series1);
            chart.Series.Add(series3);
            chart.Series.Add(series2);
            chart.Height = 400;

            //if (actualValues.Count > 37)
            //{
            //    chart.Width = (actualValues.Count * (871.0 / 37.0)) + 129;
            //}
            //else
            //{
            //    chart.Width = 1000;
            //}
            chart.BorderThickness = new Thickness(0);
            chart.Margin = new Thickness(6, -20, 6, 6);
            //chart.Width = (actualValues.Count * (871.0 / 37.0)) + 539;
            //Label title = new Label();
            //title.Content = strataValue;
            //title.Margin = new Thickness(10);
            //title.FontWeight = FontWeights.Bold;

            //panelMain.Children.Add(title);
            //panelMain.Children.Add(chart);
            ScrollViewer sv = new ScrollViewer();
            sv.MaxHeight = 400;
            sv.MaxWidth = System.Windows.SystemParameters.PrimaryScreenWidth - 125;
            //if (actualValues.Count > 37)
            //{
                chart.Width = (actualValues.Count * (871.0 / 37.0)) + 229;
            //}
            //else
            //{
            //    sv.Width = 900;
            //}
            sv.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled;
            //sv.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
            sv.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
            sv.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
            sv.Content = chart;

            chartPanel.Children.Add(sv);

            if (aberrationDetails.Count == 0)
            {
                Label noAbberration = new Label();
                noAbberration.Content = DashboardSharedStrings.GADGET_NO_ABERRATIONS_FOUND;
                noAbberration.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                noAbberration.Margin = new Thickness(0, 0, 0, 0);
                noAbberration.FontWeight = FontWeights.Bold;
                noAbberration.Foreground = Brushes.Red;
                //panelMain.Children.Add(noAbberration);
                chartPanel.Children.Add(noAbberration);
            }
            else
            {
                Label abberrationFound = new Label();
                abberrationFound.Content = DashboardSharedStrings.GADGET_ABERRATIONS_FOUND;
                abberrationFound.HorizontalAlignment = System.Windows.HorizontalAlignment.Center;
                abberrationFound.Margin = new Thickness(0, 0, 0, 5);
                abberrationFound.FontWeight = FontWeights.Bold;
                abberrationFound.Foreground = Brushes.Red;
                //panelMain.Children.Add(abberrationFound);
                chartPanel.Children.Add(abberrationFound);

                Grid grid = new Grid();
                grid.SnapsToDevicePixels = true;
                grid.HorizontalAlignment = HorizontalAlignment.Center;
                grid.Margin = new Thickness(0, 0, 0, 0);

                ColumnDefinition column1 = new ColumnDefinition();
                ColumnDefinition column2 = new ColumnDefinition();
                ColumnDefinition column3 = new ColumnDefinition();
                ColumnDefinition column4 = new ColumnDefinition();

                column1.Width = GridLength.Auto;
                column2.Width = GridLength.Auto;
                column3.Width = GridLength.Auto;
                column4.Width = GridLength.Auto;

                grid.ColumnDefinitions.Add(column1);
                grid.ColumnDefinitions.Add(column2);
                grid.ColumnDefinitions.Add(column3);
                grid.ColumnDefinitions.Add(column4);

                RowDefinition rowDefHeader = new RowDefinition();
                rowDefHeader.Height = new GridLength(25);
                grid.RowDefinitions.Add(rowDefHeader); //grdFreq.RowDefinitions.Add(rowDefHeader);

                for (int y = 0; y < /*grdFreq*/grid.ColumnDefinitions.Count; y++)
                {
                    Rectangle rctHeader = new Rectangle();
                    rctHeader.Style = this.Resources["gridHeaderCellRectangle"] as Style;
                    Grid.SetRow(rctHeader, 0);
                    Grid.SetColumn(rctHeader, y);
                    grid.Children.Add(rctHeader); //grdFreq.Children.Add(rctHeader);
                }

                TextBlock txtValHeader = new TextBlock();
                txtValHeader.Text = DashboardSharedStrings.GADGET_ABERRATION_DATE;
                txtValHeader.Style = this.Resources["columnHeadingText"] as Style;
                Grid.SetRow(txtValHeader, 0);
                Grid.SetColumn(txtValHeader, 0);
                grid.Children.Add(txtValHeader); //grdFreq.Children.Add(txtValHeader);

                TextBlock txtFreqHeader = new TextBlock();
                txtFreqHeader.Text = DashboardSharedStrings.GADGET_ABERRATION_COUNT;
                txtFreqHeader.Style = this.Resources["columnHeadingText"] as Style;
                Grid.SetRow(txtFreqHeader, 0);
                Grid.SetColumn(txtFreqHeader, 1);
                grid.Children.Add(txtFreqHeader); //grdFreq.Children.Add(txtFreqHeader);

                TextBlock txtPctHeader = new TextBlock();
                txtPctHeader.Text = DashboardSharedStrings.GADGET_ABERRATION_EXPECTED;
                txtPctHeader.Style = this.Resources["columnHeadingText"] as Style;
                Grid.SetRow(txtPctHeader, 0);
                Grid.SetColumn(txtPctHeader, 2);
                grid.Children.Add(txtPctHeader); //grdFreq.Children.Add(txtPctHeader);

                TextBlock txtAccuHeader = new TextBlock();
                txtAccuHeader.Text = DashboardSharedStrings.GADGET_ABERRATION_DIFF;
                txtAccuHeader.Style = this.Resources["columnHeadingText"] as Style;
                Grid.SetRow(txtAccuHeader, 0);
                Grid.SetColumn(txtAccuHeader, 3);
                grid.Children.Add(txtAccuHeader);

                //panelMain.Children.Add(grid);
                chartPanel.Children.Add(grid);

                int rowcount = 1;
                foreach (DataGridRow aberrationDetail in aberrationDetails)
                {
                    RowDefinition rowDef = new RowDefinition();
                    grid.RowDefinitions.Add(rowDef);

                    TextBlock txtDate = new TextBlock();
                    txtDate.Text = aberrationDetail.Date.ToShortDateString();
                    txtDate.Margin = new Thickness(2);
                    txtDate.VerticalAlignment = VerticalAlignment.Center;
                    txtDate.HorizontalAlignment = HorizontalAlignment.Center;
                    Grid.SetRow(txtDate, rowcount);
                    Grid.SetColumn(txtDate, 0);
                    grid.Children.Add(txtDate);

                    TextBlock txtFreq = new TextBlock();
                    txtFreq.Text = aberrationDetail.Frequency.ToString();
                    txtFreq.Margin = new Thickness(2);
                    txtFreq.VerticalAlignment = VerticalAlignment.Center;
                    txtFreq.HorizontalAlignment = HorizontalAlignment.Center;
                    Grid.SetRow(txtFreq, rowcount);
                    Grid.SetColumn(txtFreq, 1);
                    grid.Children.Add(txtFreq);

                    TextBlock txtAvg = new TextBlock();
                    txtAvg.Text = aberrationDetail.RunningAverage.ToString("N2");
                    txtAvg.Margin = new Thickness(2);
                    txtAvg.VerticalAlignment = VerticalAlignment.Center;
                    txtAvg.HorizontalAlignment = HorizontalAlignment.Center;
                    Grid.SetRow(txtAvg, rowcount);
                    Grid.SetColumn(txtAvg, 2);
                    grid.Children.Add(txtAvg);

                    TextBlock txtDelta = new TextBlock();
                    txtDelta.Text = "  " + aberrationDetail.Delta.ToString("N2") + " standard deviations  ";

                    StackPanel pnl = new StackPanel();
                    pnl.Orientation = Orientation.Horizontal;
                    pnl.VerticalAlignment = VerticalAlignment.Center;
                    pnl.HorizontalAlignment = HorizontalAlignment.Center;
                    pnl.Children.Add(txtDelta);

                    Grid.SetRow(pnl, rowcount);
                    Grid.SetColumn(pnl, 3);
                    grid.Children.Add(pnl);

                    rowcount++;
                }

                int rdcount = 0;
                foreach (RowDefinition rd in grid.RowDefinitions)
                {
                    int cdcount = 0;
                    foreach (ColumnDefinition cd in grid.ColumnDefinitions)
                    {
                        //Rectangle rctBorder = new Rectangle();
                        //rctBorder.Stroke = Brushes.Black;
                        //Grid.SetRow(rctBorder, rdcount);
                        //Grid.SetColumn(rctBorder, cdcount);
                        //grid.Children.Add(rctBorder);
                        //cdcount++;
                        Border border = new Border();
                        border.Style = this.Resources["gridCellBorder"] as Style;

                        if (rdcount == 0)
                        {
                            border.BorderThickness = new Thickness(border.BorderThickness.Left, border.BorderThickness.Bottom, border.BorderThickness.Right, border.BorderThickness.Bottom);
                        }
                        if (cdcount == 0)
                        {
                            border.BorderThickness = new Thickness(border.BorderThickness.Right, border.BorderThickness.Top, border.BorderThickness.Right, border.BorderThickness.Bottom);
                        }

                        Grid.SetRow(border, rdcount);
                        Grid.SetColumn(border, cdcount);
                        grid.Children.Add(border);
                        cdcount++;
                    }
                    rdcount++;
                }
            }
        }
        private void SetupLinearAxis(LinearAxis linearAxis, DateTime startDate, DateTime endDate)
        {
            // Title
            var defaultMeasurementSystem = ApplicationSettings.DefaultMeasurementSystem;
            var weightAbbrev = MeasurementSystemFactory.Get(defaultMeasurementSystem).Abbreviation;
            linearAxis.Title = "Weight (" + weightAbbrev + ")";

            // Interval, Range
            var weightList = _viewModel.Get(startDate, endDate);

            double? weightRangeMin = null;
            double? weightRangeMax = null;
            foreach (var weight in weightList.Select(item => item.Weight))
            {
                if (!weightRangeMin.HasValue || weightRangeMin > weight)
                {
                    weightRangeMin = weight;
                }

                if (!weightRangeMax.HasValue || weightRangeMax < weight)
                {
                    weightRangeMax = weight;
                }
            }

            weightRangeMin = weightRangeMin ?? GraphDefaultMin;
            weightRangeMax = weightRangeMax ?? GraphDefaultMax;

            double graphMinimum;
            double graphMaximum;
            if (weightRangeMin != weightRangeMax)
            {
                graphMinimum = Math.Floor((float)weightRangeMin / GraphDefaultResolution) * GraphDefaultResolution;
                graphMaximum = Math.Ceiling((float)weightRangeMax / GraphDefaultResolution) * GraphDefaultResolution;
            }
            else
            {
                var weightFloor = Math.Floor((float)weightRangeMax / GraphDefaultResolution) * GraphDefaultResolution;
                graphMaximum = weightFloor + GraphDefaultSpacing;
                graphMinimum = weightFloor - GraphDefaultSpacing;
            }

            if (graphMaximum < 0)
            {
                graphMaximum = 0;
            }

            linearAxis.Minimum = 0;
            linearAxis.Maximum = graphMaximum;
            linearAxis.Minimum = graphMinimum;

            linearAxis.Interval = Math.Floor((double)(linearAxis.Maximum - linearAxis.Minimum) / GraphDefaultResolution);
        }