gpt4 book ai didi

.net - 更改 ImageList 的 ImageSize 属性显示空白图像

转载 作者:行者123 更新时间:2023-12-01 13:46:14 28 4
gpt4 key购买 nike

在 Visual Studio 中的 VB.Net 解决方案中,我有一个 ListView 和一个与该 ListView 关联的 ImageList。它被设置为LargeImageList 和SmallImageList。

这是不以编程方式更改 ImageList 的 ImageSize 属性的情况下的样子:


但是,如果我通过以下方式调整 ImageList 的大小:

ImageList1.ImageSize = New Size(64, 64)

或任何其他尺寸,我得到这个:



我试着打电话 ListView1.Refresh() 后来,还是什么都没有。

我什至试过:
ListView1.LargeImageList.ImageSize = New Point(64, 64)

项目运行时如何动态设置图标的大小?我需要能够将它们调整为多种尺寸(即 32x32、64x64、96x96 等)

ImageList 中的图像都是 128x128 的,这样可以更容易地缩小它们。

最佳答案

更改 ImageSize导致重新创建句柄,这可能会破坏链接或分配。这在 MSDN 上有解释。当您更改 ColorDepth 时,它还警告图像被删除。 ;但至少在某些情况下,当您更改大小时,这似乎也会发生:

imgLst.ImageSize = New Size(64, 64)
Dim num = ImgLst.Images.Count ' == 0

无论如何,反复更改一组的大小可能不是一个好主意:从 32 调整到 128 可能会产生可怕的结果。工作是有一个 ImageList作为其中包含 128x128 图像的主人。当你想改变大小时,将它们复制到“工作” ImageList新尺寸:
Private Sub LoadImagesWithSize(sz As Size)

imgLst.ImageSize = sz
imgLst.Images.Clear
For n As Int32 = 0 To ImageList128.Images.Count - 1
imgLst.Images.Add(ImageList128.Images(n))
Next
myLV.LargeImageList = imgLst

End Sub

称之为:
LoadImagesWithSize(New Size(64, 64))

而不是 ImageList对于每种可能的尺寸,都有一个“主”和“事件”尺寸版本。它似乎工作正常。

关于.net - 更改 ImageList 的 ImageSize 属性显示空白图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35950688/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com