У меня есть этот пользовательский ListView:
public class CustomListView : ListView
{
[System.Runtime.InteropServices.DllImport("uxtheme.dll", CharSet = CharSet.Unicode)]
private extern static int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList);
protected override void CreateHandle()
{
base.CreateHandle();
SetWindowTheme(this.Handle, "explorer", null);
}
}
Чтобы получить тему Windows 7, нужен весь код.
Проблема в том, что прямоугольник полосы выбора отображается срезанным, нижняя линия не отображается, даже если высота строк увеличена.
Это нормально для всех других видов: Большой, Маленький, Плитка, Список, кроме Подробностей. Это мелочь, но я хотел бы знать, есть ли она у кого-нибудь, и лучше всего, если есть решение.
Попробуйте установить для GridLines значение false.
Границы элементов .Net ListView немного больше, чем у SysListView32. Тема explorer точно не подойдет. Даже если вы увеличите высоту строки (по отношению к пунктам Высота шрифта). Как отметил @LarsTech, если вы не используете линии сетки, прямоугольник фокуса будет полностью виден.





Код работает у меня в Windows 10, но я не получаю «пузыря». Я получаю более светлый плоский стиль.