VS2005中C#的ListView的item项缩略图问题
目前一个项目中要用到C#中的ListView显示图片,ListView一般是跟ImageList一起使用,但是这样出来的图片大小都是一个样的,有什么办法能够使出来的图片是...
目前一个项目中要用到C#中的ListView显示图片,ListView一般是跟ImageList一起使用,但是这样出来的图片大小都是一个样的,有什么办法能够使出来的图片是按照比例来缩放的,我使用过几种方式都不是很理想: 第1种 ListView.Controls.Add() 这个方法循环添加PictureBox控件,PictureBox的SizeModle使用Zoom模式,这样出来的图片确实是按比例缩放好了,但是这个PictureBox控件无法跟ListView的Item绑定在一起,例如,如果图片多的时候ListView会出现滚动条,拉动滚动条的时候,PictureBox是不会跟随滚动条移动而移动的,它只会静止在那里第2种 使用ListView 的 DrawItem事件,使用GDI+来画出图片,这个做一个图片出来速度慢,拉动滚动条的时候会不停的刷新图片.(估计是我功力不够) 第3种 也是使用GDI+来画,把要要显示的图片用GDI+画出来,然后Save()成一个新的Bmp文件,调整Bmp的位置,并且让Bmp大小和ImageList的ImageSize大小一致也就是ImageList中的图片不是原图片,而是处理过后的Bmp文件. 有更好的解决办法的朋友,希望你们指定一下新手啦!~ 谢谢!~ Mailto:uykifly@hotmail.com 或者 uyki@sina.com
展开
展开全部
使用ListView和ImageList控件: ImageList的Images属性加载所需图片。 ListView的LargeImageList,StaticImageList,SmallImageList分别绑定一个ImageList(也可绑定同一个ImageList)。 ListView的Items属性点开"...",自己看吧有你想要的。 至于代码实现可参看窗体设计器生成的代码。 试试这样: Image I; ... imageList1.Images.Add(I.GetThumbnailImage(重定义宽度,重定义高度,某委托, IntPtr.Zero)); MSDN: Image.GetThumbnailImage 方法 返回此 Image 的缩略图。 参数 thumbWidth 请求的缩略图的宽度(以像素为单位)。 thumbHeight 请求的缩略图的高度(以像素为单位)。 callback 一个Image.GetThumbnailImageAbort 委托。在 GDI+ 1.0 版中不使用此委托。即便如此,也必须创建一个委托并在该参数中传递对此委托的引用。 callbackData 必须为 Zero。 返回值 表示缩略图的 Image。 备注 如果Image 包含一个嵌入式缩略图像,则此方法会检索嵌入式缩略图,并将其缩放为所需大小。如果 Image 不包含嵌入式缩略图像,此方法会通过缩放主图像创建一个缩略图像。 请求的缩略图像大小为 120 x 120 像素时,GetThumbnailImage 方法正常运行。如果从具有嵌入式缩略图的 Image 处请求较大的缩略图像(例如,300 x 300),则缩略图像的质量可能显著降低。通过调用 DrawImage 方法缩放主图像(而非嵌入式缩略图),则效果可能较好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询