Delphi 工具栏样式已更改

Delphi Toolbar Style Changed

我刚从 Delphi 2009 升级到 Delphi XE8。这样做改变了我程序工具栏上按钮的外观。

使用 Delphi 2009 编译时,它看起来像这样:

但现在使用 Delphi XE8,它看起来像这样:

在我看来,这与属性有关。如果按钮的 Down 属性 为真,则其背景将为蓝色。如果我单击该按钮,则将 Down 属性 更改为 false,该按钮将失去蓝色背景。

有谁知道可能导致蓝色背景的原因以及如何消除它?

我在 Windows 8.1。


跟进:David 关于这是 Windows 8.1 的默认显示的回答是正确的。检查其他程序,我看到他们也这样做。

我没想到这是默认设置,因为我用 Delphi 2009 编译的程序没有这样做。但正如 David 还解释的那样,那是因为 Delphi 2009 没有内置主题支持,但 Delphi XE8 有。 (它可能已在 Delphi XE2 中添加,但不要引用我的话)

大卫提到清单是一个可能的原因。不是这种情况,但他提醒我我可能有多个清单,应该检查一下。

所以我的问题的最终答案是我不想消除蓝色背景。这是Windows 8.1默认显示向下按钮的方式,我想通过我的程序显示原生主题。

你的D2009程序没有主题,但是你的XE8程序有主题。我的意思是 XE8 包含一个指定 comctl32 版本 6 的应用程序清单。您的 D2009 程序不包含清单,或者不包含请求 comctl32 版本 6 的那部分清单。

XE8程序的视觉外观是原生平台外观,表面上看跟风是正常的。所以我会选择的选项是将外观作为平台标准。这是XE8版本。

但是,为了回答您的问题,您可以通过删除清单的 comctl32 v6 部分来恢复到旧外观。这也会影响程序的其他部分。如果您只想禁用工具栏的主题,可以使用 SetWindowTheme.

来实现