2010-09-20 9 views

Odpowiedz

41

Ponieważ zadeklarowałeś swoją Storyboard jako zasób, możesz uzyskać do niego dostęp za pomocą FindResource ("PlayAnimation"). Zobacz próbkę poniżej:

XAML:

<Window x:Class="StackOverflow.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:StackOverflow" 
     Title="MainWindow" Height="350" Width="525"> 
    <Window.Resources> 
     <Storyboard x:Key="PlayAnimation" Storyboard.TargetProperty="(Canvas.Left)"> 
      <DoubleAnimation From="0" To="100" Duration="0:0:1"/> 
     </Storyboard> 
    </Window.Resources> 

    <Canvas> 
     <Button x:Name="btn">Test</Button> 
    </Canvas> 
</Window> 

kod z opóźnieniem:

public partial class MainWindow : Window 
{ 
    public MainWindow() 
    { 
     InitializeComponent(); 
     this.Loaded += new RoutedEventHandler(MainWindow_Loaded); 
    } 

    void MainWindow_Loaded(object sender, RoutedEventArgs e) 
    { 
     Storyboard sb = this.FindResource("PlayAnimation") as Storyboard; 
     Storyboard.SetTarget(sb, this.btn); 
     sb.Begin(); 
    } 
}