Esempio n. 1
0
        private void InitBubbleAn(CustomControls.Bubbles bb)
        {
            //Canvas.SetBottom(bb, -bb.ActualHeight / 2);
            //Canvas.SetRight(bb, -bb.ActualWidth / 2);

            bb.RenderTransformOrigin = new Point(0.5, 0.5);
            bb.RandomColors();
            TranslateTransform translate = new TranslateTransform();
            //RotateTransform rotate = new RotateTransform();
            TransformGroup group = (TransformGroup)bb.RenderTransform;
            //group.Children.Add(rotate);//先旋转
            group.Children.Add(translate);//再平移
            //ScaleTransform st = new ScaleTransform(0.1, 0.1);
            //group.Children.Add(st);
            bb.RenderTransform = group;

            NameScope.SetNameScope(this, new NameScope());
            this.RegisterName("translate", translate);
            //this.RegisterName("rotate", rotate);

            //Path p = new Path();
            //p.Data = (PathGeometry)PathGeometry.Parse("M416,752 C416.62132,721.83583 376.22793,703.51499 417.86397,661.5075 459.5,619.5 418.99008,606.83656 419.55313,579.50109 420.17109,549.50009 385.31468,541.49617 421.40702,489.49808 457.49935,437.5 422.80709,421.52692 423.50712,387.54134 424.0839,359.53949 388.9757,351.57158 425.23747,303.53579 461.49924,255.5 426.58377,238.17526 427.25691,205.49499 427.77851,180.1724 372.14433,181.55445 428.8217,129.52722 485.49907,77.5 429.94781,74.856289
430.51087,47.520822 430.84058,31.513881 387.50032,25.5 431.5,-0.5");
            //PathGeometry p = new PathGeometry();
            //p = (PathGeometry)PathGeometry.Parse("M416,752 C416.62132,721.83583 376.22793,703.51499 417.86397,661.5075 459.5,619.5 418.99008,606.83656 419.55313,579.50109 420.17109,549.50009 385.31468,541.49617 421.40702,489.49808 457.49935,437.5 422.80709,421.52692 423.50712,387.54134 424.0839,359.53949 388.9757,351.57158 425.23747,303.53579 461.49924,255.5 426.58377,238.17526 427.25691,205.49499 427.77851,180.1724 372.14433,181.55445 428.8217,129.52722 485.49907,77.5 429.94781,74.856289
430.51087,47.520822 430.84058,31.513881 387.50032,25.5 431.5,-0.5");
            DoubleAnimationUsingPath animationX = new DoubleAnimationUsingPath();
            animationX.PathGeometry = p.Data.GetFlattenedPathGeometry();
            animationX.Source = PathAnimationSource.X;
            animationX.Duration = new Duration(TimeSpan.FromSeconds(2));

            DoubleAnimationUsingPath animationY = new DoubleAnimationUsingPath();
            animationY.PathGeometry = p.Data.GetFlattenedPathGeometry();
            animationY.Source = PathAnimationSource.Y;
            animationY.Duration = animationX.Duration;

            //DoubleAnimationUsingPath animationAngle = new DoubleAnimationUsingPath();
            //animationAngle.PathGeometry = p.Data.GetFlattenedPathGeometry();
            //animationAngle.Source = PathAnimationSource.Angle;
            //animationAngle.Duration = animationX.Duration;

            Storyboard story = new Storyboard();
            story.RepeatBehavior = RepeatBehavior.Forever;
            //story.AutoReverse = true;
            story.SpeedRatio = 0.1 + 0.3 * gRr.NextDouble();
            story.Children.Add(animationX);
            story.Children.Add(animationY);
            //story.Children.Add(animationAngle);
            Storyboard.SetTargetName(animationX, "translate");
            Storyboard.SetTargetName(animationY, "translate");
            //Storyboard.SetTargetName(animationAngle, "rotate");
            Storyboard.SetTargetProperty(animationX, new PropertyPath(TranslateTransform.XProperty));
            Storyboard.SetTargetProperty(animationY, new PropertyPath(TranslateTransform.YProperty));
            //Storyboard.SetTargetProperty(animationAngle, new PropertyPath(RotateTransform.AngleProperty));
            //story.Completed += new EventHandler(story_Completed);
            story.Begin(this);
        }