Delphi 最小化时仅显示标题栏的Windows Aero Peek

Delphi 最小化时仅显示标题栏的Windows Aero Peek,delphi,windows-10,delphi-10-seattle,vcl-styles,aero-peek,Delphi,Windows 10,Delphi 10 Seattle,Vcl Styles,Aero Peek,在Windows 10上使用Delphi 10,以及Windows 10深色VCL样式。当窗口处于正常状态时,将鼠标悬停在任务栏图标上会在缩略图中显示完整的窗口。但是,如果我最小化我的应用程序,那么将鼠标悬停在任务栏图标上只会在缩略图中显示标题栏。此外,如果我将鼠标悬停在缩略图上,窗口预览也只显示标题栏,而不显示其他内容。如果我把窗户恢复到自然状态,一切都会恢复正常 我确信这与特定的VCL样式“Windows10Dark”有关,因为其他VCL样式不会以这种方式运行。事实上,在完全不使用VCL样式

在Windows 10上使用Delphi 10,以及Windows 10深色VCL样式。当窗口处于正常状态时,将鼠标悬停在任务栏图标上会在缩略图中显示完整的窗口。但是,如果我最小化我的应用程序,那么将鼠标悬停在任务栏图标上只会在缩略图中显示标题栏。此外,如果我将鼠标悬停在缩略图上,窗口预览也只显示标题栏,而不显示其他内容。如果我把窗户恢复到自然状态,一切都会恢复正常

我确信这与特定的VCL样式“Windows10Dark”有关,因为其他VCL样式不会以这种方式运行。事实上,在完全不使用VCL样式的情况下,预览只显示窗体的客户区,而根本不显示标题栏。但使用这种风格,我只能看到标题栏

这是一个空白表单,只应用了“Windows 10深色”样式,没有代码:

当窗口处于正常状态时,Aero Peek将显示精细:

当它处于最小化状态时,仅显示标题栏:

当鼠标悬停在最小化的缩略图上时,也仅显示标题栏:

正如你所看到的,这完全违背了Aero Peek的目的。似乎是什么原因导致它恢复到古老的Windows3.1最小化窗口样式

我已经安装了库并尝试了
Vcl.Styles.Fixes
单元等,但仍然没有成功。此行为已确认发生在4种不同的Delphi 10西雅图安装上(更新1)

发生这种情况的原因是什么?如何使预览正常工作


编辑

当我说“这不会发生在其他风格上”时,这并没有得到充分的证明。我是根据之前在Delphi 10西雅图编译的其他应用程序来判断的。实际上,所有的VCL风格都在这样做。在不使用任何VCL样式的情况下,一切都按预期进行

另外,那些没有显示这种行为的预构建应用程序也嵌入了这些样式并手动应用。然而,一个新的空应用程序通过IDE项目选项指定样式来展示这种行为

有鉴于此,我将进一步测试手动嵌入/应用样式是否真的会有所不同


编辑2

如上所述,我对手动分配样式进行了一些测试。在复制之后,在运行时关闭并重新打开样式之后,我突然不再看到这种行为。因此,似乎只有在加载默认样式时才会出现此问题。我在前面的edit all中提到的预编译应用程序设计为在运行时动态应用样式,而不管在IDE中设置了什么样式


编辑3


奇怪的是,在编辑2之后,它第一次工作,现在我不能让它像预期的那样再次工作。在运行时切换样式不再“修复”此问题。它似乎只“修复”了一次。因此,为什么在我们的生产应用程序中一切正常,这是一个有待进一步研究的问题。从技术上讲,这些应用程序甚至没有嵌入样式。它们实际上嵌入到单个DLL中,然后由这些应用程序共享,它们的资源在运行时被提取和应用。因此,我将不得不深入研究并尝试重新创建工作代码。

糟糕的VCL样式总是问题所在。你把罗德里戈所有的单位都包括进去了吗?我仍然很惊讶,居然有人想到这样一个虫子缠身的功能。@David,没用。从该库添加
Vcl.Styles.Fixes
对该bug没有影响。好吧,您的选择。使用MS代码,你的程序就可以运行,或者使用Emba代码,它就不能运行。使用vcl样式会给你带来更多的收入吗?@David与以前的无聊UI相比,是的:-)