Call a storyboard declared in xaml from c# Call a storyboard declared in xaml from c# wpf wpf

Call a storyboard declared in xaml from c#


Since you declared your Storyboard as a Resource, you can access it by using FindResource("PlayAnimation"). See sample below:

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>

Code-behind:

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();    }}