我之前在 Delphi XE2 时间范围内问过这个问题,当时的答案很漂亮丑陋的黑客.
根据官方发行说明,现在 Delphi XE3 支持非客户端主题。在Firemonkey FM2中的Delphi XE3中如何做到这一点?
我相信这一定与样式书有关,但我无法弄清楚。表单本身有一个“EnableBorderStyling”属性,我将其设置为 true,我想我必须加载包含一些非客户端主题数据的样式,但我找不到包含它的样式。
帮助中没有任何关于这个主题的内容。
Update2好吧,它没有损坏,只是我没有包含此样式元素的样式(如 RRUZ 所说)。
procedure TForm1.FormShow(Sender: TObject);
begin
StyleBook := StyleBook1;
WindowBorder.UpdateStyle;
end;
Update3:样式文件似乎位于两个不同的位置,这令人困惑:
C:\Program Files (x86)\Embarcadero\RAD Studio\10.0\Redist\styles\Fmx
C:\Users\Public\Documents\RAD Studio\10.0\Styles
请注意,我在这两个位置都没有 Luna.Style(firemonkey 样式),但使用样式编辑器工具需要 5 秒。 (打开,另存为,然后将类型更改为.Style,我就有了一个!)
Update4:RRUZ 的答案有效,但在我的系统(Windows 8 RTM)上,非客户端样式看起来不正确,它们的区域周围有白色角
就没有完全涂漆。调整窗口大小会使它消失,我非常确定我应该能够强制 WM_NCREPAINT 或其他东西,并使其消失。
要为 Firemonkey 应用程序的非客户区域设置样式,所选样式必须具有windowborderstyle
元素定义(如图所示)
从 delphi 包含的样式中尝试Luna.Style
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)