WPF StoryBoard用法

时间:2023-03-08 21:51:14
时间:2011-06-15 21:26来源:百度空间 作者:shichen4 点击: 次

StoryBoard使用,Xaml转cs代码 Canvas.Triggers EventTriggerRoutedEvent= Image.MouseLeftButtonDown EventTrigger.Actions BeginStoryboard StoryboardStoryboard.TargetName= image1 Storyboard.TargetProperty= (Canvas.Left) DoubleAnimationAutoReverse= True Rep
  

  StoryBoard使用,Xaml转cs代码

<Canvas.Triggers>
                <EventTrigger RoutedEvent="Image.MouseLeftButtonDown">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard Storyboard.TargetName="image1" 
                                                Storyboard.TargetProperty="(Canvas.Left)" >
                                <DoubleAnimation AutoReverse="True" 
RepeatBehavior="Forever" 
                                                         BeginTime="0" 
Duration="0:0:20" From="0" To="-1100">
                                </DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Canvas.Triggers>

  转换为cs代码:

         this.image1.RenderTransform = new TranslateTransform();

this.image1.Name = "image1";
            NameScope.SetNameScope(this,new NameScope());
            this.RegisterName(this.image1.Name,this.image1);

DoubleAnimation xAnimation = new DoubleAnimation();
            xAnimation.From = 0;
            xAnimation.To = -1100;
            xAnimation.Duration = new Duration(TimeSpan.FromSeconds(30));

DependencyProperty[] propertyChain = new DependencyProperty[]
            {
                Image.RenderTransformProperty,
                TranslateTransform.XProperty
            };

Storyboard story = new Storyboard();
            story.AutoReverse = true;
            story.RepeatBehavior = RepeatBehavior.Forever;
            story.Children.Add(xAnimation);

Storyboard.SetTargetName(xAnimation,this.image1.Name);
            Storyboard.SetTargetProperty(xAnimation,new PropertyPath("(0).(1)",propertyChain));

story.Begin(this);