Pet*_*ter 4 delphi fonts taction vcl-styles delphi-xe3
通常可以像这样改变TActionMainMenuBar或TMainMenu的字体:
Screen.MenuFont.Name := 'Calibri';
Run Code Online (Sandbox Code Playgroud)
使用Vcl样式时,如果为组件注册了StyleHook,则无法再使用它.我进入了位图样式设计器(以前称为Vcl样式设计器)并更改了MenuItemTextNormal的字体.
问题是更改Font没有任何作用,我只能成功更改文本的颜色.
显然我在这里遗漏了一些东西,为什么我可以更改颜色而不是字体?
正如您所说,在样式设计器中更改MenuItemTextNormal元素(或任何其他)的字体无效,这是因为Vcl样式引擎只是忽略字体大小和名称,只使用vcl样式文件中定义的字体颜色.
作为解决方法,您必须定义并注册新的TActionBarStyleEx后代,并使用Screen.MenuFont的值绘制菜单,覆盖TCustomMenuItem和TCustomMenuButton类的DrawText方法.
我刚刚Vcl.PlatformVclStylesActnCtrls
在Vcl Styles Utils项目中添加了一个新单元(),它实现了一个新的Action Bar Style,它允许自定义TActionMainMenuBar
组件的字体和大小.
要使用它,只需将Vcl.PlatformVclStylesActnCtrls单元添加到项目中,更改Screen.MenuFont
字体的值,如
Screen.MenuFont.Name := 'Impact';
Screen.MenuFont.Size := 12;
Run Code Online (Sandbox Code Playgroud)
然后像这样设置TActionManager的样式
ActionManager1.Style:=PlatformVclStylesStyle;
Run Code Online (Sandbox Code Playgroud)
结果将是
归档时间: |
|
查看次数: |
1590 次 |
最近记录: |