如何使Windows Ribbon Framework尊重用户的字体大小?

Ian*_*oyd 17 windows-ribbon-framework

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

Windows功能区框架丝带(通过MS画图,和我的应用程序中使用)忽略了用户的(即我)字体的喜好.

截图显示:

  • Excel 2010
  • MS Paint(WRF)
  • 我的申请(WRF)

在此输入图像描述

如何获取Windows Ribbon Framework功能区以符合用户的字体大小?

奖金Chatter

没有单一的"Windows字体".允许用户配置六种不同的字体:

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

Office团队的功能区使用菜单字体,这是有道理的,因为功能区是一个菜单.您可以使用以下方式检索菜单字体:

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

//.NET
SystemFonts.MenuFont;

//Delphi
TScreen.MenuFont
Run Code Online (Sandbox Code Playgroud)

色带颜色:

默认情况下,功能区不符合用户的配色方案(请在我的屏幕截图中注明蓝色条带,我的棕色玻璃颜色).这里一个API来改变颜色的色带,你可以在第三色带(一个在我的应用程序托管)看到.

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

//change ribbon font color
IPropertyStore(framework).SetValue(UI_PKEY_GlobalTextColor, Color.Black);    
Run Code Online (Sandbox Code Playgroud)

奖金阅读

Taw*_*nos 0

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

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

  • 问题是关于 Windows Ribbon Framework (Windows API),它与 ​​.NET 的基于 WPF 的 Ribbon 实现不同。 (5认同)