Пример #1
0
        //Change thickness
        private static void OnThickChanged(DependencyObject sender,
                                           DependencyPropertyChangedEventArgs e)
        {
            double newThick = (double)e.NewValue;
            GradientProgressRing rainbowLoader = (GradientProgressRing)sender;

            rainbowLoader.Thick = newThick;
            rainbowLoader.MaskEllipse.RadiusX = newThick;
            rainbowLoader.MaskEllipse.RadiusY = newThick;
        }
Пример #2
0
        //Change percentage
        private static void OnPercentageChanged(DependencyObject sender,
                                                DependencyPropertyChangedEventArgs e)
        {
            double newPercent = (double)e.NewValue;
            GradientProgressRing rainbowLoader = (GradientProgressRing)sender;

            rainbowLoader.Percentage = newPercent;
            int   roundState = (Convert.ToInt32(rainbowLoader.Percentage * 3.6));
            Point startpt    = new Point(100, 100);

            rainbowLoader.CanvasPath.Children.Clear();
            for (int i = 0; i < roundState; i++)
            {
                //figure
                var xFigure = new PathFigure();
                xFigure.StartPoint = startpt;
                var xPathSegmentCollection = new PathSegmentCollection();
                //out
                var xOut = new LineSegment();
                xOut.Point = new Point(50 * Math.Cos(Math.PI * i / 180) + 100, 50 * Math.Sin(Math.PI * i / 180) + 100);
                xPathSegmentCollection.Add(xOut);
                Point ArcStart = new Point(50 * Math.Cos(Math.PI * (i + 2) / 180) + 100, 50 * Math.Sin(Math.PI * (i + 2) / 180) + 100);
                //arc
                var xArc = new ArcSegment(ArcStart, new Size(10, 10), 0, false, SweepDirection.Clockwise, false);
                xPathSegmentCollection.Add(xArc);
                //in
                var xIn = new LineSegment();
                xIn.Point = startpt;

                xPathSegmentCollection.Add(xIn);
                xFigure.Segments = xPathSegmentCollection;
                var xFigureCollection = new PathFigureCollection();
                xFigureCollection.Add(xFigure);

                var  xPathGeometry = new PathGeometry(xFigureCollection);
                Path xPath         = new Path();
                xPath.Data = xPathGeometry;
                int d = Convert.ToInt32(i);
                xPath.Fill = new SolidColorBrush(rainbowLoader.getHSV(i));
                rainbowLoader.CanvasPath.Children.Add(xPath);
            }
        }