我使用 SharpShell 创建了一个 PropertySheet。PropertySheet 使用 ListView,其视图设置为 Details 并启用 Groups 以显示一些信息。
PropertySheet 在 Windows 7 中的工作方式与预期完全一样,但是我现在已移至 Windows 10 (x64),尽管可以看到 PropertySheet 并且它包含的信息是正确的,但 ListView 行为不端。它根本不显示组,标题使用默认的“块”样式而不是像往常一样的“Aero”样式,最能说明问题的是页面没有重绘,即我必须单击它们的条目才能被画下来。
我已经在一个简单的 winforms 应用程序中使用完全相同的设置测试了 ListView,它的行为正确。
我已经使用 Spy++ 来比较现有的(Windows 的一部分)详细信息 PropertyPage(它也使用我想要的相同配置中的 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 的功能引起的任何问题。不幸的是,我得到了相同的结果。请参见下文(单击以强制重绘后,它应该类似于 Windows PropertySheet)。
我一直无法在网上找到任何提及此问题或可能导致此问题的 Windows 10 中的设置。
如果有人能够提供帮助,我将不胜感激。谢谢