感谢WPF的强大封装,这一切竟然3段代码就完成了。
比如我们常见到的那个兔子揉脸的GIF:
程序运行结果:
代码则是使用BitmapDecoder类型,针对GIF
动画,则需要初始化它的子类GifBitmapDecoder。而BitmapDecoder得Frames属性则包含一系列的BitmapFrame。这个类型是BitmapDecoder(和BitmapEncoder)中用到的图像帧,继承自BitmapSource,因此本质上也是一种位图类型。
XAML:
代码:
var uri = new Uri(@"C:UsersMgenDesktopa.gif");
var gifDecoder = new GifBitmapDecoder(uri, BitmapCreateOptions.None, BitmapCacheOption.Default);
lbx.ItemsSource = gifDecoder.Frames;