棒棒牛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 324|回复: 1

[问题] 收藏 不显示删除回复显示所有回复显示星级回复显示得分回 [复制链接]

V2

噶爵士乐

Rank: 2Rank: 2

游币
100
金币
92
经验
80
积分
96
帖子
5
发表于 2011-7-31 21:18:12 |显示全部楼层
我做WPF程序,用一个listbox控件绑定显示一个文件夹中的图片,然后点击图片的时候,另外一个image控件显示点击的图片,然后我设置了一个按钮,点击按钮时,删除listbox选中的图片,为什么删除的时候,提示不让删呢??怎么办,求帮助啊。。。。。
C#代码如下:
读取图片的代码
C# code private void SJ_Mode( )
        {


            SJ = new List<string>( );
            string path= AppDomain.CurrentDomain.BaseDirectory+@"ImageMean\";
            strFile=Directory.GetDirectories( path );//获取文件下的文件夹
            for ( int j=0 ; j<strFile.Length ; j++ )
            {
                string name=strFile[j];
                DirectoryInfo DInfo = new DirectoryInfo( name );
                FileSystemInfo[] FSInfo = DInfo.GetFileSystemInfos( );
                for ( int i = 0 ; i < FSInfo.Length ; i++ )
                {
                    string FileType = FSInfo[i].ToString( ).Substring( FSInfo[i].ToString( ).LastIndexOf( "." ) + 1 , ( FSInfo[i].ToString( ).Length - FSInfo[i].ToString( ).LastIndexOf( "." ) - 1 ) );
                    FileType = FileType.ToLower( );
                    if ( FileType == "jpg" || FileType == "png" || FileType == "bmp" || FileType == "gif" || FileType == "jpeg" )
                    {
                        Image image=new Image( );
                        image.Width=150;
                        image.Height=150;
                        image.Source=new BitmapImage( new Uri( FSInfo[i].FullName.ToString( ) ) );
                        ListBoxItem listboxItems=new ListBoxItem( );
                        listboxItems.Content=image;
                        image.MouseLeftButtonDown+=new MouseButtonEventHandler( image_MouseLeftButtonDown );
                        list.Items.Add( listboxItems );
                       }
                }
            }
         
        }

获取listbox中image的source值,即图片的路径
C# code
    string delPath;
        void image_MouseLeftButtonDown( object sender , MouseButtonEventArgs e )
        {
            Image image=sender as Image;
            delPath=image.Source.ToString( );
           
        }



点击按钮时删除图片的代码
C# code

                       path =delPath.Substring( 8 );
  list.Items.Remove(list.SelectedItem);
               File.Delete( path );


当程序运行到file.delete的时候出现错误,说图片正在由另一进程使用,这个问题怎么解决??当listbox显示图片的名字的时候,图片则可以正常删除,但绑定图片的时候则不能删除,怎么解决???求帮助啊。。。。。。。。。。。。。
黄昏,路口,结束天长地久_/~↘

版主

WPF_1.5_ray

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

游币
259
金币
586
经验
1690
积分
2179
帖子
429

2011 年度优秀版主 2010 年度优秀版主

发表于 2011-8-17 20:49:45 |显示全部楼层
绑定的时候绑定图片名字,然后自己写一个Converter,把文件先读成Byte数组到内存中,再用BitmapDecoder创建ImageSource返回,则不会锁定文件
What is real?
您需要登录后才可以回帖 登录 | 注册

bbniu.com (湘ICP备06008909号)  

GMT+8, 2012-5-21 20:57

Copyright © 2009-2011 bbniu.com. All Rights Reserved.

回顶部