将阴影添加到 ListView(图标模式)?

Posted

技术标签:

【中文标题】将阴影添加到 ListView(图标模式)?【英文标题】:Add drop shadow to ListView (Icon mode)? 【发布时间】:2015-01-27 22:42:56 【问题描述】:

如果您在 Windows 资源管理器中查看缩略图图像,您会注意到它们有一个阴影,这种效果是否与 ListView 控件相关,或者 Windows 资源管理器是否进行了一些额外的编码来实现这种效果?


编辑:

原来Windows使用了另一个控件。所以我现在的问题是如何向“普通”ListView 添加阴影。

【问题讨论】:

Explorer 不使用系统列表视图控件 它是否使用了我们无权访问的控件? 是的,确实如此:***.com/questions/4089196/netuihwnd-and-directuihwnd 这太复杂了...你完全可以最终制作一个半透明位图并将其模糊以制作阴影... @Mints97 它有多复杂,我的意思是我应该学习什么才能做到这一点。我有一个想法,就是在图像本身上绘制阴影,我已经尝试过了,效果很好,但是有一个问题:当我选择 ListView 项目时,阴影也显示为选中!那么有没有办法只让 ListView 项目的一部分被选中(没有阴影的部分)? 【参考方案1】:

对于标准列表视图,您可能需要使用一种称为自定义绘制 (https://msdn.microsoft.com/en-us/library/windows/desktop/ff919569(v=vs.85).aspx) 的技术。

基本上,您要求列表视图不要绘制其项目,而是向您发送一些窗口消息让您自己绘制它们。这是一种非常灵活但也很麻烦的技术,因为你需要处理很多事情(比如一个项目是否被选中/禁用、字体、颜色等)

【讨论】:

以上是关于将阴影添加到 ListView(图标模式)?的主要内容,如果未能解决你的问题,请参考以下文章

ListView 与 ArrayAdapter 和 ViewHolder 将图标添加到错误的项目

Listview与imageList联动使用

将 headerView 添加到小部件上的小部件中的 listView 调整大小 android

PyQt5 可拖动图标从列表视图到另一个

如何在 listView 中更新和添加新列表?

解决RecyclerView&ListView滚动到顶部或者底部边界出现阴影问题