我在基于 .NET 3.5 的 winforms 应用程序的 ListView 中渲染图像时遇到问题。
在 ListView 控件中,我使用 LargeImageList 作为缩略图。
应用程序在 Win 7 中正常工作 - 缩略图中的图像正常,但如果应用程序在 Win XP 中运行,缩略图中的图像会呈现错误。
Win 7 和 Win Xp 中渲染的区别就在于此
。
什么会导致这种行为?
已编辑:谢谢大家的回复和建议。它已经解决了。我使用另一个控件而不是 winforms listview。
我在基于 .NET 3.5 的 winforms 应用程序的 ListView 中渲染图像时遇到问题。
在 ListView 控件中,我使用 LargeImageList 作为缩略图。
应用程序在 Win 7 中正常工作 - 缩略图中的图像正常,但如果应用程序在 Win XP 中运行,缩略图中的图像会呈现错误。
Win 7 和 Win Xp 中渲染的区别就在于此
。
什么会导致这种行为?
已编辑:谢谢大家的回复和建议。它已经解决了。我使用另一个控件而不是 winforms listview。
为此,您可以尝试使用免费的 ObjectListView 控件。您可以从http://objectlistview.sourceforge.net下载它。
ImageGetter要显示图像的列(通常是第一列)的属性设置为返回 的函数Image,string或者int与要为项目显示的图像相对应的函数。stringor int,则 OLV 中的图像LargeImageListorSmallImageList将为项目显示。Enumerable要显示的项目的集合,并使用SetObjectsorAddObjects方法将其附加到 OLV。您可以查看Better ListView组件。我们做出了巨大的努力来启用任意大小的缩略图:

渲染使用 GDI+,因此结果在 XP 和 Windows 7 上看起来相同(当然,基于 Windows 主题的选择除外)。
.NET ListView 是一个 Win32 控件包装器,因此外观很大程度上取决于操作系统,我们制作了一个完全用托管代码编写的控件来避免这些问题。