代码之家  ›  专栏  ›  技术社区  ›  markus_ja

是否可以设置内置功能区控件(D2009)的字体?

  •  0
  • markus_ja  · 技术社区  · 14 年前

    我想增加标准(D2009)功能区控件的字体大小,但我找不到这样做的属性。 有可能改变字体吗?什么时候是,怎么做?

    谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   Marjan Venema    14 年前

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

    alt text

    更新 (回应评论)

    TMS Software ),和设置 Ribbon1.Font.Name

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

    应该做到这一点,不过为了测试它,我可能会选择一种字体(比如“Modern”),它与Tahoma(大多数系统上的标准系统字体)的区别更为明显。

    注意:我还没有检查这个,但我不会感到惊讶,如果你只能使用真正的类型字体的功能区。

    更新

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

    一些调查结果如下

    • 字体的大小确实会改变
    • 功能区最终接收到一条CMFONTCHANGED消息
    • 处理这些消息会使功能区更改连接到功能区的所有操作栏的字体
    • 然后开始重建DribbonMetrics
    • Tabs[I].Page.Canvas.Font.Size := GetRibbonMetric(rmFontSize);
    • GetRibbonMetric—瞧—无条件返回8,硬编码,甚至不是常量,只是整数文本。

    为什么要这样编码?不知道。可能得通过质量中心问博尔卡德罗。我浏览了微软Ribbon控件指南,不记得看到过什么东西说Ribbon的字体大小应该总是8。。。