WPF - 动画图像源更改
WPF - animate image source change
我是 WPF 的新手,但我认为我需要做的事情相对简单。我需要创建一个图像 "animation",我每 .25 秒更改一次图像源。
我有一个名为 "animation" 的文件夹,其中包含 1 到 25 png 的实时图像(名为 1.png、2.png... 25.png)。每个图像都与我动画的不同帧相关。
我想写 xaml 将图像从 1 更改为 2,从 2 到 3,每 .25 秒更改 3 到 4 等,直到它到达第 25 个图像,然后它应该循环返回开始。
我很可能需要编写一些 C# 来执行此操作。我希望它 运行 在可以与 UI 交互的线程上(如更新图像)但不阻塞 UI 线程。
提前致谢!
一个纯粹的 XAML 解决方案可能看起来像这样,当然有不同的图像和时间。
<Image>
<Image.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Source"
Duration="0:0:2">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<BitmapImage UriSource="C:\Users\Public\Pictures\Sample Pictures\Koala.jpg"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:1">
<DiscreteObjectKeyFrame.Value>
<BitmapImage UriSource="C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
我是 WPF 的新手,但我认为我需要做的事情相对简单。我需要创建一个图像 "animation",我每 .25 秒更改一次图像源。
我有一个名为 "animation" 的文件夹,其中包含 1 到 25 png 的实时图像(名为 1.png、2.png... 25.png)。每个图像都与我动画的不同帧相关。
我想写 xaml 将图像从 1 更改为 2,从 2 到 3,每 .25 秒更改 3 到 4 等,直到它到达第 25 个图像,然后它应该循环返回开始。
我很可能需要编写一些 C# 来执行此操作。我希望它 运行 在可以与 UI 交互的线程上(如更新图像)但不阻塞 UI 线程。
提前致谢!
一个纯粹的 XAML 解决方案可能看起来像这样,当然有不同的图像和时间。
<Image>
<Image.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard RepeatBehavior="Forever">
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Source"
Duration="0:0:2">
<DiscreteObjectKeyFrame KeyTime="0:0:0">
<DiscreteObjectKeyFrame.Value>
<BitmapImage UriSource="C:\Users\Public\Pictures\Sample Pictures\Koala.jpg"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:1">
<DiscreteObjectKeyFrame.Value>
<BitmapImage UriSource="C:\Users\Public\Pictures\Sample Pictures\Penguins.jpg"/>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>