ListView 是本机 Windows 控件。是的,它确实支持背景图像,LVM_SETBKIMAGE 消息会处理它。然而,它不支持样板 Winforms BackgroundImage 支持,值得注意的是 BackgroundImageLayout,这是 Winforms 为 Control 类实现并在 ControlStyles.UserPaint 打开时实现的属性。它不适用于本机 Windows 控件,它们自己绘制。
为 ListView 编写 Winforms 包装类的人做了下一件好事,他向ListView 类添加了一个名为 BackgroundImageTile的新属性。本机 Windows 控件确实实现的布局选项。这使您只剩下本机控件支持的两个布局选项。瓷砖或不瓷砖。
同一个人做了一些非常英勇的事情来使 Winforms 包装类行为合理。该代码充满了解决本机控件怪癖的技巧。很棒的工作。如果 Windows 团队的人能够让 Winforms 人的生活更轻松,他的生活会轻松很多。但它不是那样工作的,ListView比 Winforms 存在的时间要长得多。而且从一开始就设计得不是很好,微软在那段时间经历了相当大的成长痛苦。
快进并更改规则,以便您不依赖旧代码:WPF、Silverlight、WinRT。