17

Office 2007/2010 团队的功能区荣誉是用户(菜单)的字体大小。

Windows Ribbon Framework功能区(由 MS Paint 和我的应用程序使用)忽略用户(即我的)字体首选项。

截图显示:

  • Excel 2010
  • MS油漆(WRF)
  • 我的申请(WRF)

在此处输入图像描述

如何获得Windows Ribbon Framework功能区以尊重用户的字体大小?

奖金喋喋不休

没有单一的“Windows 字体”。允许用户配置六种不同的字体:

  • 图标标题字体
  • 状态字体
  • 消息字体
  • 菜单字体
  • 字幕字体
  • 小标题字体

Office 团队的功能区使用菜单字体,这很有意义,因为功能区是一个菜单。您可以使用以下方法检索菜单字体

//Win32
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, ref nonClientMetrics, 0); 
nonClientMetrics.lfMenuFont;

//.NET
SystemFonts.MenuFont;

//Delphi
TScreen.MenuFont

色带颜色

默认情况下,功能区不尊重用户的配色方案(在我的屏幕截图中注意蓝色功能区,我的棕色玻璃颜色)。正如您在第三个功能区(托管在我的应用程序中)中看到的那样,有一个用于更改功能区颜色的api。

//change ribbon background color
IPropertyStore(framework).SetValue(UI_PKEY_GlobalBackgroundColor, glassColor);

//change ribbon font color
IPropertyStore(framework).SetValue(UI_PKEY_GlobalTextColor, Color.Black);    

奖金阅读

  • Windows 功能区框架:如何更改字体和大小?那个问题是关于如何设置任意字体和大小 - 这可以用来尊重用户的 Windows 字体首选项。这个问题是关于指示功能区本身尊重用户的字体首选项,同时仍然无法指定任意字体/大小
4

1 回答 1

0

这是一个较老的问题,但有一个FontSize可用于 WPF 窗口功能区的属性:http: //www.microsoft.com/en-us/download/details.aspx?id=11877

您可以将该属性绑定到一个函数,该函数返回SystemFonts.MenuFontSize并获得所需的更大文本。

于 2013-01-24T05:15:18.913 回答