你必须使用2个图像列表,一个用于smallimages,一个用于largeimages得到最好的结果,我想。 (ListView中有两个属性,LargeImageList和SmallImageList)
编辑(当我想,工作找到了新的信息):
这个版本使用插值获得较小的拇指,应该会更好。
Dim BigIcon As Icon = Nothing
BigIcon = Icon.ExtractAssociatedIcon("c:\zebra.zip")
Dim largeimages As New ImageList
Dim smallimages As New ImageList
largeimages.Images.Add("1", BigIcon)
'Fix a smaller version with interpolation
Dim bm As New Bitmap(BigIcon.ToBitmap)
Dim thumb As New Bitmap(16, 16)
Dim g As Graphics = Graphics.FromImage(thumb)
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImage(bm, New Rectangle(0, 0, 16, 16), New Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel)
g.Dispose()
bm.Dispose()
smallimages.Images.Add("1", thumb)
ListView1.SmallImageList = smallimages
ListView1.LargeImageList = largeimages
thumb.Dispose()
ListView1.Items.Add("Test", "Test", "1")
可悲的是,似乎并没有工作 - 他们仍然显示不好。任何其他想法? – robintw 2009-01-20 22:04:00
即时通讯工作..;) – Stefan 2009-01-20 22:10:02