如何在 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");
}
不支持
简单使用。我建议使用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;
}