internal override void TransformTick(AxisTickModel tick, FrameworkElement visual) { double angle = (double)tick.normalizedValue * 360; double startAngle = (this.chart.chartArea as PolarChartAreaModel).StartAngle; visual.RenderTransformOrigin = new Point(0.5, 0); visual.RenderTransform = new RotateTransform() { Angle = this.model.IsInverse ? -90 + startAngle - angle : -90 - startAngle - angle }; }
internal override void TransformTick(AxisTickModel tick, FrameworkElement visual) { PolarChartAreaModel chartAreaModel = this.chart.chartArea as PolarChartAreaModel; double startAngle = chartAreaModel.StartAngle; visual.RenderTransformOrigin = new Point(0.5, 0); double rotationAngle = chartAreaModel.AngleAxis.IsInverse ? startAngle : 360 - startAngle; visual.RenderTransform = new RotateTransform() { Angle = rotationAngle }; }
private FrameworkElement CreateTickVisual(AxisTickModel tick) { FrameworkElement visual; DataTemplate template = this.GetTickTemplate(tick.Type); if (template == null) { visual = this.CreateTickRectangle(); } else { visual = this.CreateContentPresenter(tick, template); } return(visual); }
internal FrameworkElement GetTickVisual(AxisTickModel tick, int index) { FrameworkElement visual; if (index >= this.tickVisuals.Count) { visual = this.CreateTickVisual(tick); this.tickVisuals.Add(visual); } else { visual = this.tickVisuals[index]; visual.Visibility = Visibility.Visible; } return(visual); }
private int ArrangeLines(bool shouldDrawWithComposition = false) { if (!this.Visible) { return(0); } object line; int lineCount = 0; GridStripe stripe; int count = this.Stripes.Count; for (int i = 0; i < count; i++) { stripe = this.Stripes[i]; if (!stripe.AssociatedTick.isVisible) { continue; } if (i == 0) { if ((this.RenderMode & GridLineRenderMode.First) != GridLineRenderMode.First) { continue; } } else { if ((this.RenderMode & GridLineRenderMode.Inner) != GridLineRenderMode.Inner) { continue; } } if (shouldDrawWithComposition) { line = this.GetContainerLineVisual(lineCount); this.Owner.chart.ContainerVisualsFactory.PrepareCartesianChartGridLineVisual((ContainerVisual)line, stripe.BorderRect, this.Orientation, this.dashArray); } else { line = this.GetLineVisual(lineCount); this.ArrangeLine(stripe.BorderRect, (Line)line); } lineCount++; } //draw the last line if (count > 0 && (this.RenderMode & GridLineRenderMode.Last) == GridLineRenderMode.Last) { stripe = this.Stripes[count - 1]; if (stripe.AssociatedTick.isVisible) { AxisTickModel nextTick = stripe.AssociatedTick.NextMajorTick; if (nextTick.isVisible) { RadRect lastRect = this.Orientation == Windows.UI.Xaml.Controls.Orientation.Vertical ? new RadRect(stripe.BorderRect.Right, stripe.BorderRect.Y, 1, stripe.BorderRect.Height) : new RadRect(stripe.BorderRect.X, stripe.BorderRect.Y - 1, stripe.BorderRect.Width, 1); if (shouldDrawWithComposition) { line = this.GetContainerLineVisual(lineCount); this.Owner.chart.ContainerVisualsFactory.PrepareCartesianChartGridLineVisual((ContainerVisual)line, lastRect, this.Orientation, this.dashArray); } else { line = this.GetLineVisual(lineCount); this.ArrangeLine(lastRect, (Line)line); } lineCount++; } } } return(lineCount); }
internal virtual void TransformTick(AxisTickModel tick, FrameworkElement visual) { }
private int ArrangeLines() { if (!this.Visible) { return(0); } Line line; int lineCount = 0; GridStripe stripe; int count = this.Stripes.Count; for (int i = 0; i < count; i++) { stripe = this.Stripes[i]; if (!stripe.AssociatedTick.isVisible) { continue; } if (i == 0) { if ((this.RenderMode & GridLineRenderMode.First) != GridLineRenderMode.First) { continue; } } else { if ((this.RenderMode & GridLineRenderMode.Inner) != GridLineRenderMode.Inner) { continue; } } line = this.GetLineVisual(lineCount); this.ArrangeLine(stripe.BorderRect, line); lineCount++; } // draw the last line if (count > 0 && (this.RenderMode & GridLineRenderMode.Last) == GridLineRenderMode.Last) { stripe = this.Stripes[count - 1]; if (stripe.AssociatedTick.isVisible) { AxisTickModel nextTick = stripe.AssociatedTick.NextMajorTick; if (nextTick.isVisible) { line = this.GetLineVisual(lineCount); RadRect lastRect = this.Orientation == Windows.UI.Xaml.Controls.Orientation.Vertical ? new RadRect(stripe.BorderRect.Right, stripe.BorderRect.Y, 1, stripe.BorderRect.Height) : new RadRect(stripe.BorderRect.X, stripe.BorderRect.Y - 1, stripe.BorderRect.Width, 1); this.ArrangeLine(lastRect, line); lineCount++; } } } return(lineCount); }