gpt4 book ai didi

wpf - WPF MediaElement 中的动画 gif 在几帧后停止动画

转载 作者:行者123 更新时间:2023-12-01 14:13:01 27 4
gpt4 key购买 nike

我需要在 WPF 项目中显示一些媒体。媒体可以是 jpeg、gif、png、bmp 或 wmv 电影。所以我希望使用 MediaElement 来进行播放。问题是我无法让动画 gif 正常工作。

我在这里看到了很多讨论如何在 WPF 应用程序中显示动画 gif 的问题,特别是:

1) Embed a windows forms Picture box within the app ,工作正常,但图片框在 ViewBox 中托管时无法正确缩放,所以我不能使用它
2) Create a custom GifImage which inherits from Image and do the animation myself .这工作正常,但这意味着我需要担心我正在显示什么类型的媒体,而不是仅仅要求元素处理它(尽管我想如果我想我可以进一步自定义对象所以它知道如何处理各种媒体)。此外,我认为某些动画 gif 仅存储每一帧中已更改的位,因此无法正常显示帧 - 例如:http://www.modernathlete.co.za/layout/banners/PEDI_Relax_469x60.gif )
3) Use a MediaElement and set up a trigger with a storyboard to loop the gif infinitely .

第三种方法是我尝试使用的方法,因为它(表面上...)似乎是最简单的方法。然而,无论我做什么,我似乎都无法让动画 gif 循环播放——事实上,它似乎在 3 帧后卡住了。代码如下:

<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication4"
Title="MainWindow" Height="350" Width="525">
<Grid>
<MediaElement Name="yourMediaElement">
<MediaElement.Triggers>
<EventTrigger RoutedEvent="MediaElement.Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<MediaTimeline Source="http://www.modernathlete.co.za/layout/banners/PEDI_Relax_469x60.gif"
Storyboard.TargetName="yourMediaElement"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</MediaElement.Triggers>
</MediaElement>
</Grid>
</Window>

我已经尝试使用不同的动画 gif(这两个:http://www.modernathlete.co.za/layout/banners/PEDI_Relax_469x60.gifhttp://www.gifanimations.com/GA/image/animations/aliens/alien-01.gif),直接从互联网和本地引用它们(下载并链接到文件的直接路径中)在磁盘上),但在所有情况下,在几帧之后,gif 将停止动画。

我是不是做错了什么?

最佳答案

您尝试过 WPF MediaKit 中的 MediaElement 替换吗? ?这可能更适合您的需求。

关于wpf - WPF MediaElement 中的动画 gif 在几帧后停止动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5057993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com