PropertySheet ListView ведет себя по-разному в Windows 10
Я создал PropertySheet с помощью SharpShell. PropertySheet использует ListView с его представлением, установленным на Details и Groups, для отображения некоторой информации.
Таблица свойств работает точно так же, как и ожидалось в Windows 7, однако теперь я перешел на Windows 10 (x64), и хотя список свойств можно увидеть, и информация, содержащаяся в нем, является правильной, ListView работает неправильно. Он вообще не показывает группы, заголовки используют стиль по умолчанию "block", а не стиль "Aero", как обычно, и большинство проблем заключается в том, что страница не перерисовывается, т.е. я должен щелкнуть записи, чтобы они быть нарисованным.
Я протестировал ListView в простом приложении winforms с точно такими же настройками, и он ведет себя правильно.
Я использовал Spy++ для сравнения существующей (части Windows) детали PropertyPage Details (которая также использует ListView в той же конфигурации, что и мне бы хотелось). Я обнаружил некоторые небольшие различия, в которых были установлены флаги:
Windows Details PropertyPage My PropertyPage
Windows Styles: 5201891D Windows Styles: 56018141
WS_CHILDWINDOW 40000000L WS_CHILDWINDOW 40000000L
WS_VISIBLE 10000000L WS_VISIBLE 10000000L
- WS_CLIPSIBLINGS 04000000L
WS_CLIPCHILDREN 02000000L WS_CLIPCHILDREN 02000000L
WS_TABSTOP 00010000L -
- WS_MAXIMIZEBOX 00010000L
00008141 (All LVS setting were grouped
for my control but I worked out the
following)
LVS_REPORT 0001 LVS_REPORT 0001
LVS_SINGLESEL 0004 -
LVS_SHOWSELALWAYS 0008 -
LVS_SORTASCENDING 0010 -
- LVS_SHAREIMAGELISTS 0040
LVS_AUTOARRANGE 0100 LVS_AUTOARRANGE 0100
LVS_ALIGNLEFT 0800 -
LVS_NOSORTHEADER 8000 LVS_NOSORTHEADER 8000
Extended Styles: 00000204 Extended Styles: 00000200
WS_EX_LEFT 00000000L WS_EX_LEFT 00000000L
WS_EX_LTRREADING 00000000L WS_EX_LTRREADING 00000000L
WS_EX_RIGHTSCROLLBAR 00000000L WS_EX_RIGHTSCROLLBAR 00000000L
WS_EX_CLIENTEDGE 00000200L WS_EX_CLIENTEDGE 00000200L
WS_NOPARENTNOTIFY 00000004L -
Я создал очень простой PropertySheet, чтобы исключить любые проблемы, связанные с функциональностью моего исходного PropertySheet. К сожалению, я получаю тот же результат. См. Ниже (после нажатия, чтобы принудительно перерисовать, и окна PropertySheet, что он должен напоминать).
Мне не удалось найти упоминания в Интернете об этой проблеме или о настройке в Windows 10, которая могла бы быть причиной этого.
Если кто-то сможет помочь, я буду очень признателен. Спасибо