Использование CreateParams и SetWindowTheme в ListView одновременно
Я использую функцию SetWindowTheme (uxtheme.dll), чтобы мой ListView выглядел как Windows 7 родной. Мне пришлось использовать материал CreateParams, чтобы предотвратить мерцание этого ListView при сортировке. Это сработало, но когда я использую этот код CreateParams, SetTheme больше не работает. Есть ли способ использовать родную тему Windows 7 и CreateParams одновременно?
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}
[DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
private static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList);
public MainWindow()
{
InitializeComponent();
SetWindowTheme(listView1.Handle, "Explorer", null);
}
Спасибо
РЕДАКТИРОВАТЬ: я решил проблему, добавив вызов SetWindowTheme в OnHandleCreated void моего пользовательского ListView. Спасибо Гансу Пассанту.