【问题标题】:Is it possible to set the font of the builed in Ribbon controls (D2009)?是否可以设置内置功能区控件(D2009)的字体?
【发布时间】:2010-08-28 18:38:45
【问题描述】:

我想增加标准 (D2009) 功能区控件的字体大小,但我没有找到可以执行此操作的属性。 是否可以完全更改字体?如果是,如何?

谢谢

【问题讨论】:

    标签: delphi ribbon font-size ribbon-control


    【解决方案1】:

    TRibbon 有一个已发布的 Font 属性,我会使用它吗?

    只需确保您没有选择功能区的任何子组件,或者当您这样做时,按退出键直到对象检查器显示 TRibbon 本身的属性。

    更新(回应评论)

    它对我有用,只是试了一下以确保。我使用了组件库 (TMS Software) 中的 FontSelector,并将 Ribbon1.Font.Name 设置为任何有效的字体名称(由字体选择器从系统中检索),例如“Verdana”或“Comic Sans MS”,具有立即可见的效果在功能区上显示的所有文本上。

    所以:

    Ribbon1.Font.Name = 'Comic Sans MS';
    

    应该可以解决问题,但为了测试它,我可能会选择与 Tahoma(大多数系统上的标准系统字体)的区别更明显的字体(例如“Modern”)。

    注意:尚未对此进行检查,但如果您只能将 True Type 字体与功能区一起使用,我不会感到惊讶。

    更新

    Andreas Rejbrand 刚刚指出,在我之前的更新中,我忽略了一个事实,即 OP 想要更改字体的大小,而不是字体(由其名称标识)。不幸的是,事实证明,虽然 Font 属性当然有大小,但改变它确实没有任何效果......嗯,为什么不呢?

    一些调查发现了以下情况

    • 字体的大小确实发生了变化
    • 功能区终于收到 CMFONTCHANGED 消息
    • 处理该消息会使功能区更改连接到功能区的所有操作栏的字体
    • 然后它启动 RebuildRibbonMetrics
    • 然后继续设置Tabs[I].Page.Canvas.Font.Size := GetRibbonMetric(rmFontSize);
    • GetRibbonMetric - 你瞧 - 无条件地返回 8,硬编码,甚至不是常量,只是一个整数文字。

    嗯,这就是为什么您可以将功能区的字体大小更改为您心中的内容但它永远不会有任何效果的原因。

    为什么要这样编码?不知道。可能必须通过 Quality Central 询问 Borcadero。我浏览了 MS 功能区控制指南,不记得看到任何内容说功能区的字体大小应始终为 8...

    【讨论】:

    • 我已经这么那个属性了,但是没有效果。不确定这是错误还是我没有正确理解。
    • Marjan 说得对,她说您确实可以更改功能区的字体。但是当他说你不能改变功能区的字体 size 时,max 是同样正确的。
    • 另外,作为旁注:我相信 Tahoma 是 Windows XP 上的默认系统字体,但在 Windows Vista 和 Windows 7 中,Segoe UI 是默认字体。但是 Delphi 中的默认字体仍然是(截至 D2009)Tahoma。
    • @Andreas: 哦,混蛋,这么讨厌的四个字母的小词……读了它,不知何故它立即从我的意识中消失了:/
    • 天哪,我刚试过,你可以改变文本的方向,但不能改变大小。这很有趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 2015-02-13
    • 1970-01-01
    • 2013-01-20
    • 2022-06-27
    相关资源
    最近更新 更多