如何在 WPF 上加载 GIF

本文关键字:加载 GIF WPF | 更新日期: 2023-09-27 18:34:34

我不确定我在窗口中加载 gif 做错了什么。如果可能的话,动画 GIF 是最好的,即使它只循环一次(不需要控制它(。

WPF

<Image Name="ImageViewer1" Height="100" Width="100" Margin="340,178,0,0" />

加载 GIF

public MainWindow()
{
 InitializeComponent();
 ImageViewer1.Source = new Image(@"giphy.gif");
}

如何在 WPF 上加载 GIF

不支持

简单使用。我建议使用MediaElement。动画的 gif 更容易且受支持。

<MediaElement x:Name="gif" MediaEnded="gif_MediaEnded" UnloadedBehavior="Manual" Source=@"giphy.gif" LoadedBehavior="Play" Stretch="None"/>

对于循环:

private void gif_MediaEnded(object sender, RoutedEventArgs e)
{
 gif.Position = new TimeSpan(0, 0, 1);
 gif.Play();
}
private void myMedia_MediaEnded(object sender, RoutedEventArgs e)
{
 myMedia.Position = new TimeSpan(0, 0, 1);
 myMedia.Play();
}
private void myMedia_MediaOpened(object sender, RoutedEventArgs e)
{
 if (myMedia.Stretch != Stretch.Uniform)
 {
   myMedia.Stretch = Stretch.Uniform;
 }
 else
 {
   myMedia.Stretch = Stretch.Uniform;
 }
 MediaElement me = sender as MediaElement;
 ScaleTransform newT = new ScaleTransform();
 newT.ScaleX = (16.0 / 9.0) * me.NaturalVideoHeight / me.NaturalVideoWidth;
 newT.ScaleY = 1;
 me.RenderTransform = newT;
}