예제 #1
0
        internal override Point GetPositionInAxisUnits(XYDataPoint dataPoint)
        {
            double x   = this.Series.XAxis.AxisPresenter.ConvertScaleToAxisUnits(dataPoint.XValueInScaleUnits) ?? 0.0;
            double num = this.TransformYValueInScaleUnits(dataPoint, dataPoint.YValueInScaleUnits);
            StackedColumnDataPoint stackedColumnDataPoint = dataPoint as StackedColumnDataPoint;

            if (stackedColumnDataPoint != null)
            {
                stackedColumnDataPoint.YValuePercent = num;
            }
            double y = this.Series.YAxis.AxisPresenter.ConvertScaleToAxisUnits(num) ?? 0.0;

            return(new Point(x, y));
        }
        internal override void BindViewToDataPoint(DataPoint dataPoint, FrameworkElement view, string valueName)
        {
            base.BindViewToDataPoint(dataPoint, view, valueName);
            StackedColumnSeries    stackedColumnSeries    = dataPoint.Series as StackedColumnSeries;
            StackedColumnDataPoint stackedColumnDataPoint = dataPoint as StackedColumnDataPoint;
            LabelControl           labelControl           = view as LabelControl;

            if (labelControl == null || stackedColumnDataPoint == null || (stackedColumnSeries == null || !stackedColumnSeries.ActualIsHundredPercent) || !(valueName == "ActualLabelContent") && valueName != null)
            {
                return;
            }
            double yvaluePercent = stackedColumnDataPoint.YValuePercent;

            if (Math.Abs(yvaluePercent) < 0.005)
            {
                labelControl.Content = (object)null;
            }
            else
            {
                labelControl.Content = (object)yvaluePercent.ToString("P0", (IFormatProvider)CultureInfo.CurrentCulture);
            }
        }