我的ListView
View
属性设置为LargeIcon
。我有一个ImageList
作为ListView
的图片来源。
我想要的是在ListView
中显示垂直和水平方向的图像,但ImageList
对于其集合中的所有图像只有一个属性ImageSize
,例如,如果我设置了属性为150x100并添加垂直图像(100x150)到集合 - ListView
自动将其拉伸到150x100。
据我所知,我需要一些ImageList
,其中每张图片都以原始大小存储。有关如何做到这一点的任何想法?
提前谢谢。
答案 0 :(得分:0)
我自己也遇到过这个问题,这就是我所做的,我希望它也能帮到你,首先确定你要使用的最大图像尺寸(例如200x200)然后使用Png或Gif图像(所有200x200)透明背景。
看一下我创建的这两个图像作为例子。
但我这样做是为了避免拉伸:
答案 1 :(得分:0)
要避免拉伸,可以使用交叉乘法。
Image Width Desired Width
--------------- = ---------------
Image Height New Height
或
Image Width New Width
--------------- = ---------------
Image Height Desired Height
在代码中它看起来像这样
int height = img.Width*newWidth/image.Height;
或
int height = img.Width/image.Height*newWidth;
和
int width = img.Height*newHeight/image.Width;
或
int width = img.Height/image.Width*newHeight;
然后,在创建新位图时,您可以使用所需大小和派生大小在新位图上绘制缩放图像。