以下内容部分参考ChatGPT模型:
你可以尝试使用Storyboard的Begin()方法和Pause()方法来实现在后台暂停和继续动画的功能。具体代码可以参考下面的示例:
XAML:
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApp1"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<Storyboard x:Key="myAnimation">
<DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleX)"
From="1" To="2" Duration="0:0:1" RepeatBehavior="Forever"/>
<DoubleAnimation Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[1].(ScaleTransform.ScaleY)"
From="1" To="2" Duration="0:0:1" RepeatBehavior="Forever"/>
</Storyboard>
</Window.Resources>
<Grid>
<Button Content="Start" Click="Button_Click"/>
<Button Content="Pause" Click="Button_Click_1"/>
<Button Content="Resume" Click="Button_Click_2"/>
<Rectangle Fill="Blue" Width="100" Height="100">
<Rectangle.RenderTransform>
<TransformGroup>
<TranslateTransform X="50" Y="50"/>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</TransformGroup>
</Rectangle.RenderTransform>
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard Storyboard="{StaticResource myAnimation}" Name="myStoryboard"/>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</Grid>
</Window>
C#:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
myStoryboard.Begin();
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
myStoryboard.Pause();
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
myStoryboard.Resume();
}
}
在这个示例中,我定义了一个Storyboard来实现一个矩形的缩放动画。在XAML中,我使用了三个按钮来控制动画的开始、暂停和继续。在按钮的Click事件处理程序中,我分别调用了Storyboard的Begin()、Pause()和Resume()方法来实现相应的功能。
如果我的建议对您有帮助、请点击采纳、祝您生活愉快
参考下面
https://www.cnblogs.com/tommy-huang/p/6496748.html
https://www.cnblogs.com/Stay627/p/15857785.html