0

我想增加标准(D2009)功能区控件的字体大小,但我找不到一个属性来做到这一点。是否可以完全更改字体?什么时候是,怎么做?

谢谢

4

1 回答 1

1

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

替代文字

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

更新(回应评论)

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

所以:

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

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

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

更新

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

一些调查出现了以下情况

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

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

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

于 2010-08-26T18:32:38.113 回答