/// <summary> /// Ases the core element. /// </summary> /// <param name="axis">The axis.</param> /// <param name="source">The source.</param> /// <returns></returns> public AxisSectionCoreNew AsCoreElement(AxisCoreNew axis, AxisOrientationNew source) { var model = new AxisSectionCoreNew(this, axis.Chart); model.View.Model = model; return(model); }
/// <summary> /// Ases the core element. /// </summary> /// <param name="axis">The axis.</param> /// <param name="source">The source.</param> /// <returns></returns> public SeparatorConfigurationCore AsCoreElement(AxisCoreNew axis, AxisOrientationNew source) { AxisOrientation = source; Chart = axis.Chart; Axis = axis; return(new SeparatorConfigurationCore(axis) { IsEnabled = IsEnabled, Step = Step, Source = source }); }
/// <summary> /// Ases the core element. /// </summary> /// <param name="chart">The chart.</param> /// <param name="source">The source.</param> /// <returns></returns> public virtual AxisCoreNew AsCoreElement(ChartCore chart, AxisOrientationNew source) { if (Model == null) { Model = new AxisCoreNew(this); } Model.ShowLabels = ShowLabels; Model.Chart = chart; Model.IsMerged = IsMerged; Model.Labels = Labels; Model.LabelFormatter = LabelFormatter; Model.MaxValue = MaxValue; Model.MinValue = MinValue; Model.Title = Title; Model.Position = Position; Model.Separator = Separator.AsCoreElement(Model, source); Model.DisableAnimations = DisableAnimations; Model.Sections = Sections.Select(x => x.AsCoreElement(Model, source)).ToList(); return(Model); }
/// <summary> /// Initializes a new instance of the <see cref="SeparatorConfigurationCore"/> class. /// </summary> /// <param name="axis">The axis.</param> public SeparatorConfigurationCore(AxisCoreNew axis) { Axis = axis; }
private void PlaceLabel(string text, AxisCoreNew axis, AxisOrientationNew source) { _label.Text = text; var formattedText = new FormattedText( _label.Text, CultureInfo.CurrentUICulture, FlowDirection.LeftToRight, new Typeface(_label.FontFamily, _label.FontStyle, _label.FontWeight, _label.FontStretch), _label.FontSize, Brushes.Black); var transform = new LabelEvaluation(axis.View.LabelsRotation, formattedText.Width + 10, formattedText.Height, axis, source); _label.RenderTransform = Math.Abs(transform.LabelAngle) > 1 ? new RotateTransform(transform.LabelAngle) : null; var toLine = ChartFunctionsNew.ToPlotArea(Value + SectionOffset + SectionWidth * .5, source, Model.Chart, axis); var direction = source == AxisOrientationNew.X ? 1 : -1; toLine += axis.EvaluatesUnitWidth ? direction * ChartFunctionsNew.GetUnitWidth(source, Model.Chart, axis) / 2 : 0; var toLabel = toLine + transform.GetOffsetBySource(source); var chart = Model.Chart; if (axis.IsMerged) { const double padding = 4; if (source == AxisOrientationNew.Y) { if (toLabel + transform.ActualHeight > chart.DrawMargin.Top + chart.DrawMargin.Height) { toLabel -= transform.ActualHeight + padding; } } else { if (toLabel + transform.ActualWidth > chart.DrawMargin.Left + chart.DrawMargin.Width) { toLabel -= transform.ActualWidth + padding; } } } var labelTab = axis.Tab; labelTab += transform.GetOffsetBySource(source.Invert()); if (source == AxisOrientationNew.Y) { labelTab += 8 * (axis.Position == AxisPositionNew.LeftBottom ? 1 : -1); if (Model.View.DisableAnimations || DisableAnimations) { Canvas.SetLeft(_label, labelTab); Canvas.SetTop(_label, toLabel); return; } _label.BeginAnimation(Canvas.TopProperty, new DoubleAnimation(toLabel, chart.View.AnimationsSpeed)); _label.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(labelTab, chart.View.AnimationsSpeed)); } else { if (Model.View.DisableAnimations || DisableAnimations) { Canvas.SetLeft(_label, toLabel); Canvas.SetTop(_label, labelTab); return; } _label.BeginAnimation(Canvas.LeftProperty, new DoubleAnimation(toLabel, chart.View.AnimationsSpeed)); _label.BeginAnimation(Canvas.TopProperty, new DoubleAnimation(labelTab, chart.View.AnimationsSpeed)); } }