/// <summary> /// 获取指定项在X轴的坐标值 /// </summary> /// <param name="item">目标项</param> /// <returns>指定项在X轴的坐标值</returns> internal double GetX(IChartItem item) { var result = this.PrimitiveGetX(item); result += this._axisCanvas.Margin.Left; return(result); }
private double GetAxis(IChartItem item, bool x, double axisSize) { if (this._axisData == null) { return(double.NaN); } object obj = ChartHelper.GetChartItemAxisValue(item, x); if (item == null) { return(double.NaN); } double value = ChartHelper.ConvertToDouble(obj); if (!ChartHelper.DoubleHasValue(value)) { return(double.NaN); } double result = axisSize * (value - this._axisData.MinValue) / this._axisData.Area; if (base.Orientation == AxisLabelOrientation.BottomToTop || base.Orientation == AxisLabelOrientation.RightToLeft) { result = axisSize - result; } return(result); }
/// <summary> /// 获取IChartItem中坐标轴的值 /// </summary> /// <param name="item">目标项</param> /// <param name="x">X轴为true;Y轴为false</param> /// <returns>IChartItem中坐标轴的值</returns> public static object GetChartItemAxisValue(IChartItem item, bool x) { if (item == null) { return(null); } ; object value; if (item is IChartAxisValue) { var chartAxisValue = (IChartAxisValue)item; if (x) { value = chartAxisValue.GetXValue(); } else { value = chartAxisValue.GetYValue(); } } else if (item is IChartChildValue) { value = ((IChartChildValue)item).GetValue(); } else { throw new NotSupportedException($"类型{item.GetType().FullName}未实现{nameof(IChartValue)}或{nameof(IChartChildValue)}接口"); } return(value); }
private double GetAxis(IChartItem item, bool x, double axisSize) { if (this._axisData == null) { return(double.NaN); } object obj = ChartHelper.GetChartItemAxisValue(item, x); if (item == null) { return(double.NaN); } DateTime?value = ChartHelper.ConvertToDateTime(obj); if (value == null) { return(double.NaN); } //计算AxisOrientation.LeftToRight或TopToBottom double result = axisSize * (value.Value - this._axisData.MinValue).TotalMilliseconds / this._axisData.Area.TotalMilliseconds; if (base.Orientation == AxisLabelOrientation.RightToLeft || base.Orientation == AxisLabelOrientation.BottomToTop) { result = axisSize - result; } return(result); }
private double GetAxis(IChartItem item, bool x) { if (item == null || !(item is IChartAxisValue)) { return(double.NaN); } var chartAxisValue = (IChartAxisValue)item; object labelAxisItem; if (x) { labelAxisItem = chartAxisValue.GetXValue(); } else { labelAxisItem = chartAxisValue.GetYValue(); } if (labelAxisItem == null) { labelAxisItem = this._nullLabelAxisItem; } LabelSeriesItem labelSeriesItem; if (!this._axisData.TryGetValue(labelAxisItem, out labelSeriesItem)) { return(double.NaN); } double result; if (labelSeriesItem.TryGetValue(chartAxisValue, out result)) { return(result); } return(double.NaN); }
public ProductRepository(IProduct p, IChartItem CI) { prod = p; ci = CI; }
/// <summary> /// 获取指定项在Y轴的坐标值 /// </summary> /// <param name="item">目标项</param> /// <returns>指定项在Y轴的坐标值</returns> protected override double PrimitiveGetY(IChartItem item) { return(this.GetAxis(item, false, base._axisCanvas.Height)); }
/// <summary> /// 获取指定项在X轴的坐标值 /// </summary> /// <param name="item">目标项</param> /// <returns>指定项在X轴的坐标值</returns> protected override double PrimitiveGetX(IChartItem item) { return(this.GetAxis(item, true, base._axisCanvas.Width)); }
/// <summary> /// 获取指定项在Y轴的坐标值 /// </summary> /// <param name="item">目标项</param> /// <returns>指定项在Y轴的坐标值</returns> protected override double PrimitiveGetY(IChartItem item) { return(this.GetAxis(item, false)); }
/// <summary> /// 获取指定项在Y轴的坐标值 /// </summary> /// <param name="item">目标项</param> /// <returns>指定项在Y轴的坐标值</returns> protected abstract double PrimitiveGetY(IChartItem item);