如何在Delphi FMX的TStringGrid中调整列标题字体大小?
解决TStringGrid列标题字体大小不生效的问题
问题出在StyledSettings属性的继承逻辑上:默认情况下,列标题的字体大小会被全局样式覆盖,即使你手动设置了HeaderSettings.TextSettings.Font.Size,只要StyledSettings包含Size,自定义的大小就不会生效。
设计时解决方案(优先推荐)
打开DFM编辑器或在对象检查器中操作:
- 选中目标列(此处为
StringColumn1) - 找到
HeaderSettings -> StyledSettings属性,取消勾选Size选项 - 此时你之前设置的
HeaderSettings.TextSettings.Font.Size = 16就会正常显示
也可直接修改DFM代码,给StringColumn1添加一行属性配置:
object StringColumn1: TStringColumn Header = 'Operating System:' HeaderSettings.StyledSettings = [Family, Style, FontColor] // 排除Size,让自定义字体大小生效 HeaderSettings.TextSettings.Font.Size = 16.00000000000000000 HeaderSettings.TextSettings.WordWrap = False ReadOnly = True Size.Width = 795.00000000000000000 end
运行时解决方案
如果设计时修改无效,可在窗体创建事件中添加代码强制覆盖样式:
procedure TYourForm.FormCreate(Sender: TObject); begin // 移除标题样式中的Size控制,让自定义字体大小生效 GridOperatingSystemImages.Columns[0].HeaderSettings.StyledSettings := GridOperatingSystemImages.Columns[0].HeaderSettings.StyledSettings - [ssSize]; // 重新设置字体大小(设计时已设置可省略) GridOperatingSystemImages.Columns[0].HeaderSettings.TextSettings.Font.Size := 16; end;
内容的提问来源于stack exchange,提问作者Shaun Roselt
相关产品推荐
相关产品推荐

