delphi – 使用Vcl样式时更改TActionMainMenuBar的字体
通常可以像这样改变TActionMainMenuBar或TMainMenu的字体:
Screen.MenuFont.Name := 'Calibri'; 使用Vcl样式时,如果为组件注册了StyleHook,则无法再使用它. 问题是更改Font没有任何作用,我只能成功更改文本的颜色. 显然我在这里遗漏了一些东西,为什么我可以更改颜色而不是字体? 解决方法
正如您所说,在样式设计器中更改MenuItemTextNormal元素(或任何其他)的字体无效,这是因为Vcl样式引擎只是忽略字体大小和名称,只使用vcl样式文件中定义的字体颜色.
作为解决方法,您必须定义并注册新的TActionBarStyleEx后代并覆盖TCustomMenuItem和TCustomMenuButton类的DrawText方法,使用Screen.MenuFont的值绘制菜单. 我刚刚在Vcl Styles Utils项目中添加了一个新单元( 要使用它,只需将Vcl.PlatformVclStylesActnCtrls单元添加到项目中,将Screen.MenuFont字体的值更改为 Screen.MenuFont.Name := 'Impact'; Screen.MenuFont.Size := 12; 然后像这样设置TActionManager的样式 ActionManager1.Style:=PlatformVclStylesStyle; 结果将是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |