【问题标题】:Winform ListView Background Color in LargeIcon View大图标视图中的 Winform ListView 背景颜色
【发布时间】:2014-09-19 12:50:10
【问题描述】:

我正在使用标准的 .NET ListView,我想在 View=LargeIcon 设置中设置背景颜色。当我设置 ListViewItem.BackgroundColor 时,只设置了文本背景。

【问题讨论】:

  • 为什么不把ListView BackColor设置成和item一样?
  • 设置整个ListView的BackColor。我想在项目周围有白色的 ListView 背景和黄色矩形。
  • 问题出在你的物品图标上。它不覆盖整个矩形。打开您的图标图像并填充所需的颜色或直接在列表视图上绘制

标签: .net winforms listview


【解决方案1】:

我知道这已经晚了几天,但如果您仍在寻求解决方案,我已经找到了一些可能会有所帮助的方法。看了this answer之后找到了解决办法。

您将需要派生自己的 ListView 控件版本并添加一些自定义绘图,但这不会导致过多的额外代码:

public class MyListView : ListView
{
    public MyListView()
        : base()
    {
        OwnerDraw = true;
        DrawItem += MyListView_DrawItem;
    }

    private void MyListView_DrawItem(object sender, DrawListViewItemEventArgs e)
    {
        using (SolidBrush itemBrush = new SolidBrush(e.Item.BackColor))
        {
            e.Graphics.FillRectangle(itemBrush, e.Item.Bounds);
        }

        e.DrawDefault = true;
    }
}

我在一个新表单上使用了这个新控件,并使用设计器添加了 2 个项目,并将项目的背景颜色设置为“金色”。结果如下:

【讨论】:

  • 谢谢!效果很好。而且我什至不需要派生 List,因为 OwnerDraw 和 DrawItem 是公开的。
猜你喜欢
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多