コード例 #1
0
ファイル: RadialAxis.cs プロジェクト: zyhong/UI-For-UWP
        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
            };
        }
コード例 #2
0
        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
            };
        }
コード例 #3
0
ファイル: Axis.cs プロジェクト: zyhong/UI-For-UWP
        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);
        }
コード例 #4
0
ファイル: Axis.cs プロジェクト: zyhong/UI-For-UWP
        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);
        }
コード例 #5
0
            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);
            }
コード例 #6
0
ファイル: Axis.cs プロジェクト: zyhong/UI-For-UWP
 internal virtual void TransformTick(AxisTickModel tick, FrameworkElement visual)
 {
 }
コード例 #7
0
            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);
            }