private void SetGridLinesStyle(ForegroundDateTimeAxis axis, Color color) { var gridStyle = new Style(typeof(Line)); gridStyle.Setters.Add(new Setter(Line.StrokeProperty, new SolidColorBrush(color))); gridStyle.Setters.Add(new Setter(Line.StrokeThicknessProperty, (double)1)); gridStyle.Setters.Add(new Setter(Line.OpacityProperty, (double)0.5)); axis.GridLineStyle = gridStyle; }
public IAxis Convert(IDataObject data) { var axis = new ForegroundDateTimeAxis(); if (data == null) { return(axis); } SetGridLinesStyle(axis, ResolveColor(data[ChartingConstants.GridLinesColorPropertyName] as string)); var orientation = AxisOrientation.None; if (data[AxisDataConstants.Orientation] != null) { Enum.TryParse <AxisOrientation>(data[AxisDataConstants.Orientation] as string, out orientation); } var minimum = DateTime.MinValue; if (data[AxisDataConstants.Minimum] != null) { DateTime.TryParse(data[AxisDataConstants.Minimum].ToString(), CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal, out minimum); } var maximum = DateTime.MaxValue; if (data[AxisDataConstants.Maximum] != null) { DateTime.TryParse(data[AxisDataConstants.Maximum].ToString(), CultureInfo.CurrentCulture, DateTimeStyles.AssumeLocal, out maximum); } int interval = 1; if (data[AxisDataConstants.Interval] != null) { int.TryParse(data[AxisDataConstants.Interval].ToString(), NumberStyles.Integer, CultureInfo.CurrentCulture, out interval); } bool autoCalculate = false; if (data[AxisDataConstants.AutoCalculate] != null) { bool.TryParse(data[AxisDataConstants.AutoCalculate].ToString(), out autoCalculate); } var intervalType = DateTimeIntervalType.Auto; if (data[AxisDataConstants.DateTimeIntervalType] != null) { Enum.TryParse <DateTimeIntervalType>(data[AxisDataConstants.DateTimeIntervalType] as string, out intervalType); } axis.Title = data[AxisDataConstants.Title]; axis.Orientation = orientation; // What's the difference if it's foreground or not if you won't show them? :) axis.ShowGridLines = true; axis.IntervalType = intervalType; if (autoCalculate) { axis.Interval = null; axis.Minimum = null; axis.Maximum = null; } else { if (minimum != DateTime.MinValue) { axis.Minimum = minimum; } if (maximum != DateTime.MaxValue) { axis.Maximum = minimum == maximum?minimum.AddDays(1) : maximum; } axis.Interval = interval; } return(axis); }