如何在xaml中声明一个故事板并从代码中运行它

我想在点击按钮时增加当前窗口高度。

我用这个代码:

private void sendbtn_Click(object sender, RoutedEventArgs e) { DoubleAnimation myDoubleAnimation = new DoubleAnimation(); myDoubleAnimation.From = this.Height; myDoubleAnimation.To = 500; myDoubleAnimation.Duration = new Duration(TimeSpan.FromSeconds(0.5)); Storyboard myStoryboard = new Storyboard(); myStoryboard.Children.Add(myDoubleAnimation); Storyboard.SetTargetName(myDoubleAnimation, this.Name); Storyboard.SetTargetProperty(myDoubleAnimation, new PropertyPath(Window.HeightProperty)); myStoryboard.Begin(this); } 

但我想在xaml中声明我的故事板并从代码中运行它。

但我不知道这是怎么回事?

您可以将其放在资源字典中并从代码中引用它。 或者,您可以使用事件触发器在XAML中启动Storyboard:

       

从代码开始:

 ((Storyboard)this.Resources["TheStoryboard"]).Begin(this); 

从XAML开始:

      

为按钮分配名称的位置:

   
  1. 将故事板声明为窗口中的资源。
  2. 给它一把钥匙。

       ...   
  3. 找到资源:

     Storyboard sb = this.FindResource("test") as Storyboard; 
  4. 用它:

     sb.Begin(); 
 Storyboard sb = (Storyboard)btnPause.FindResource("PauseStoryboard"); //to start sb.Begin(btnPause, true); //to stop sb.Stop(btnPause);