关于Image一些比较抽象的东西(Build Type与 同步以及异步加载的差异)
图片的Build Type不同 则URI格式也不同:
注意:设置成”Content“会让程序启动更快,设置成”Resource“会让程序更快的响应。
Content: <Image Source="/ImagesAsContent/smiley1.png"/> Resource: <Image Source="..\ImagesAsResource\smiley3.png"/>
Bitmapimage有两种图片加载模式:
BitmapImage.UriSource = uriSource; // loads the image via URI, asynchronously 异步加载
BitmapImage.SetSource(stream); // loads the image from stream, synchronously 同步加载
1.如果同步加载一张不正确的图片文件,将会得到一个异常。
2.如果异步加载一张不正确的图片文件,ImageFailed事件会触发。
3.如果异步加载一张正确的图片文件,ImageOpened事件会触发。
4.如果同步加载一张正确的图片文件,ImageOpened事件不会触发。
在程序的运行过程中,图片缓存会一直占用内存空间。不过也可以通过下列代码删除缓存信息:
BitmapImage bitmapImage = image.Source as BitmapImage; bitmapImage.UriSource = null; image.Source = null;