<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="storyboard.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
<Storyboard x:Key="all_in_one">
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(GradientBrush.GradientStops)[3].(GradientStop.Color)" Storyboard.TargetName="btn_a">
<EasingColorKeyFrame KeyTime="0" Value="#FFCDCDCD"/>
<EasingColorKeyFrame KeyTime="0:0:0.6" Value="#FFED0B00"/>
<EasingColorKeyFrame KeyTime="0:0:1" Value="#FFCDCDCD"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Button x:Name="btn_a" Content="A" HorizontalAlignment="Left" Height="56" Margin="117,134,0,0" VerticalAlignment="Top" Width="66" Click="btn_a_Click" />
<Button x:Name="btn_b" Content="B" HorizontalAlignment="Left" Height="56" Margin="187,134,0,0" VerticalAlignment="Top" Width="66"/>
<Button x:Name="btn_c" Content="C" Height="56" Margin="257,134,301,0" VerticalAlignment="Top"/>
</Grid>
在这里,我为按钮 a("btn_a") 创建了一个故事板。
public partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
// Insert code required on object creation below this point.
}
private void btn_a_Click(object sender, RoutedEventArgs e)
{
Storyboard button_animation = (Storyboard)(FindResource("all_in_one"));
button_animation.Begin();
}
}
我想在后面的代码中动态地将相同的故事板应用于彼此的按钮,例如 btn_b 和 btn_c。
如果我单击按钮 b,它也必须为按钮 c 设置动画。