我在xaml中写一段动画,然后在事件触发中这样写可以触发事件:
        <EventTrigger SourceName="button1" RoutedEvent="Button.Click">
            <BeginStoryboard Name="closeQueryCanvasStoryboard" 
                      Storyboard="{StaticResource 动画名}">
            </BeginStoryboard>
        </EventTrigger>
以上代码可以实现当button1单击时播放动画。
我现在的为问题是:如何在程序的运行过程中由代码自动触发动画呢,比如在程序执行过程中根据代码中的某一变量n是否等于10来确定是否播放动画,每当n从1加到10的时候就播放一次动画。

解决方案 »

  1.   

    if (n == 10)
        closeQueryCanvasStoryboard.begin();
      

  2.   


    closeQueryCanvasStoryboard.begin();编译都不过,代码中不认closeQueryCanvasStoryboard
      

  3.   

    public partial class Window1 : Window
        {
            private Storyboard myStoryBoard;         public Window1()
            {
                InitializeComponent();            this.RegisterName("TestButton1", TestButton1);
                DoubleAnimation da = new DoubleAnimation();
                da.From = 1.0;
                da.To = 0.0;
                myStoryBoard = new Storyboard();
                myStoryBoard.Children.Add(da);
                Storyboard.SetTargetName(da, "TestButton1");
                Storyboard.SetTargetProperty(da, new PropertyPath(Button.OpacityProperty));
            }        private void TestButton_Click(object sender, RoutedEventArgs e)
            {
                myStoryBoard.Begin(this, true);
            }
        }Xmal里新建一个button叫TestButton1就可以了
      

  4.   

    我这么试的一个,在后台调用好使,你试着改改。
    挺长时间不用,有点忘了。
    txttt.Begin();<Rectangle Name="MyRectangle" Width="100" Height="100">
                <Rectangle.Fill>
                    <SolidColorBrush x:Name="MySolidColorBrush" Color="Blue" />
                </Rectangle.Fill>
                <Rectangle.Triggers>
                    <EventTrigger RoutedEvent="Page.Loaded">
                        <BeginStoryboard>
                            <Storyboard x:Name="txttt" RepeatBehavior="Forever" AutoReverse="True">
                                <DoubleAnimation 
                                    Storyboard.TargetName="MyRectangle"
                                    Storyboard.TargetProperty="Width"
                                    From="100" To="200" Duration="0:0:1" />
                                                <ColorAnimation 
                                    Storyboard.TargetName="MySolidColorBrush"
                                    Storyboard.TargetProperty="Color"
                                    From="Blue" To="Red" Duration="0:0:1" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Rectangle.Triggers>
            </Rectangle>
      

  5.   

    在后台代码获取指定的 Storyboard,手动调用Begin 方法
    或者样式表中设置 dataTrigger