【发布时间】:2016-01-19 11:15:43
【问题描述】:
我目前正在开发一些软件,而客户对某个给我带来麻烦的特定 UI 更改已经死心塌地:
我希望 ListView 中的项目没有任何缩进。为了说明,我更改了 ListView 和项目的背景色。
现在,每个项目左侧的小块也应该是白色的。有什么想法吗?
【问题讨论】:
我目前正在开发一些软件,而客户对某个给我带来麻烦的特定 UI 更改已经死心塌地:
我希望 ListView 中的项目没有任何缩进。为了说明,我更改了 ListView 和项目的背景色。
现在,每个项目左侧的小块也应该是白色的。有什么想法吗?
【问题讨论】:
您可以将ListView 的OwnerDraw 属性设置为true,并使用DrawItem、DrawColumnHeader 和DrawSubItem 自己绘制列表视图。
例如:
private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e)
{
e.Graphics.DrawString(e.Item.Text, e.Item.Font, Brushes.Black,
new Rectangle(e.Bounds.Left-2, e.Bounds.Top, e.Bounds.Width, e.Bounds.Height));
}
private void listView1_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
{
e.DrawDefault = true;
}
private void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
if(e.ColumnIndex>0)
e.DrawDefault = true;
}
注意:
Graphics.DrawString。 e.DrawDefault = true; 以执行默认渲染。ListView 控件并将 DoubleBuffered 属性设置为 true。OwnerDraw 控件的OwnerDraw 属性文档。【讨论】: