WPF如何加载一个gif?

WPF how to load a gif?

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

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

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

Image Viewer 不支持简单使用。我推荐使用 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;
    }