当前位置:编程学习 > C#/ASP.NET >>

[WPF]使用StreamSource显示图片后,应该在什么时候Close

用BitmapImage为Image控件显示图像,最简单的就是
BitmapImage bi=new BitmapImage(new Uri(file));
但是这个时候file文件会把占用,想删除或改写就不能成功

改成下面的方法就可以:

使用两个按钮,分别如下:

        FileStream fs;
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            BitmapImage bi = new BitmapImage();
            bi.BeginInit();
            fs=File.OpenRead(@"D:\wallpaper\wallpaper.jpg");
            bi.StreamSource = fs;
            bi.EndInit();
            img.Source = bi;
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            fs.Close();
        }


执行button2_Click之后,图片还是可以显示,而且文件没有被占用,这就是我要的效果

但是如果把fs.Close()直接放在img.Source=bi;之后,图片就显示不出来了。

而我显示不可能用一个按钮的Click去触发fs.Close代码,所以我想知道,我应该在什么时候执行fs.Close()
Image或者BitmapImage有相关的事件吗,我没有找到 --------------------编程问答-------------------- WPF的问题没人回啊 --------------------编程问答-------------------- --------------------编程问答-------------------- with(BitmapImage bi = new BitmapImage())
{
            bi.BeginInit();
            fs=File.OpenRead(@"D:\wallpaper\wallpaper.jpg");
            bi.StreamSource = fs;
            bi.EndInit();
            img.Source = bi;

} --------------------编程问答-------------------- 不对,别瞎说


顶顶也健康! --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 这个我也没搞明白,在SL下setsource(stream)(等同于wpf的streamsource属性)就可以close,不知为什么wpf下不可以。帮UP
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,