wpf 移动动画播放完成后销毁物体
时间: 2024-12-12 17:30:13 浏览: 15
在WPF中,如果你想要创建移动动画并在完成播放后自动销毁对应的UI元素,你可以使用`Timeline`和`Storyboard`结合`.Completed`事件。首先,你需要在XAML中声明一个`Storyboard`和包含动画的`DoubleAnimation`:
```xml
<Storyboard x:Key="MoveStoryboard">
<DoubleAnimation Storyboard.TargetName="YourElementName" Storyboard.TargetProperty="(FrameworkElement.Translation.X)" From="0" To="50" Duration="0:0:2" />
</Storyboard>
```
然后,在需要的地方设置这个动画,并绑定到`Completed`事件:
```xaml
<Button Click="AnimateButton_Click">
<Button.Content>
<TextBlock Text="开始移动"/>
</Button.Content>
</Button>
...
private void AnimateButton_Click(object sender, RoutedEventArgs e)
{
var storyboard = FindResource("MoveStoryboard") as Storyboard;
storyboard.Begin();
// 当动画完成时执行销毁操作
storyboard.Completed += (s, a) =>
{
FrameworkElement target = FindName("YourElementName");
if (target != null)
{
target.Visibility = Visibility.Collapsed; // 或者你可以将其从UI树中移除
}
};
}
```
在这个例子中,当点击按钮时,动画开始播放并移动元素。动画结束后,`Completed`事件会被触发,元素的可见性会变为Collapsed(隐藏),达到销毁效果。
阅读全文