通常你可以改变一个TActionMainMenuBar或TMainMenu这样的字体更改TActionMainMenuBar的字体零件。 我进入了位图样式设计器(以前称为Vcl样式设计器),并更改了MenuItemTextNormal的字体。使用Vcl的样式时
问题是,更改字体什么也不做,我只能成功更改文本的颜色。
显然我在这里错过了一些东西,为什么我可以改变颜色而不是字体?
通常你可以改变一个TActionMainMenuBar或TMainMenu这样的字体更改TActionMainMenuBar的字体零件。 我进入了位图样式设计器(以前称为Vcl样式设计器),并更改了MenuItemTextNormal的字体。使用Vcl的样式时
问题是,更改字体什么也不做,我只能成功更改文本的颜色。
显然我在这里错过了一些东西,为什么我可以改变颜色而不是字体?
至于你说的风格设计改变MenuItemTextNormal元素的字体(或任何其他)没有任何影响,这是因为对VCL风格引擎会忽略字体大小和名称,只是用在vcl样式文件中定义的字体颜色。
作为解决方法,您必须定义并注册新的TActionBarStyleEx后代并覆盖TCustomMenuItem和TCustomMenuButton类的DrawText方法,并使用Screen.MenuFont的值绘制菜单。
我刚刚为Vcl Styles Utils项目添加了一个新单元(Vcl.PlatformVclStylesActnCtrls
),该项目实现了一个新的Action Bar Style,它允许自定义TActionMainMenuBar
组件的字体和大小。
要使用它,只有Vcl.PlatformVclStylesActnCtrls单元添加到您的项目,改变Screen.MenuFont
字体的价值观像
Screen.MenuFont.Name := 'Impact';
Screen.MenuFont.Size := 12;
,然后设置你的TActionManager的风格,像这样
ActionManager1.Style:=PlatformVclStylesStyle;
结果将是
绝对好,谢谢。 – Peter