Как заставить Windows Ribbon Framework учитывать размер шрифта пользователя? - PullRequest
16 голосов
/ 27 февраля 2012

Лента команды Office 2007/2010 учитывает размер шрифта пользователя (Меню).

Лента Windows Ribbon Framework (используется MS Paint и моим приложением) игнорирует пользовательские (т.е. мой) настройки шрифта.

Снимок экрана:

  • Excel 2010
  • MS Paint (WRF)
  • Мое приложение (WRF)

enter image description here

Как получить ленту Windows Ribbon Framework в соответствии с размером шрифта пользователя?

Bonus Chatter

Нет единого «шрифта Windows».Пользователь может настроить шесть различных шрифтов:

  • Шрифт заголовка иконки
  • Шрифт статуса
  • Шрифт сообщения
  • Шрифт меню
  • Шрифт заголовка
  • Шрифт малого заголовка

На ленте команды Office используется шрифт Меню , что имеет смысл, поскольку лента - это меню.Вы можете получить шрифт Меню , используя:

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

//.NET
SystemFonts.MenuFont;

//Delphi
TScreen.MenuFont

Цвет ленты :

По умолчанию лента не соответствует цветовой схеме пользователя(обратите внимание на мои скриншоты синюю ленту с моим коричневым стеклянным цветом). - это API для изменения цвета ленты, как вы можете видеть на 3-й ленте (той, которая размещена в моем приложении).

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

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

Бонусное чтение

  • Windows Ribbon Framework: Как изменить размер и размер шрифта? ( Этот вопрос был о том, как установитьпроизвольный размер и размер шрифта - который может использоваться для удовлетворения предпочтений шрифта Windows пользователя. Этот вопрос касается указания самой ленте соблюдать предпочтения шрифта пользователя, но при этом не удается указать произвольный размер шрифта face / size )

1 Ответ

0 голосов
/ 24 января 2013

Это старый вопрос, но для ленты Windows WPF доступно свойство FontSize: http://www.microsoft.com/en-us/download/details.aspx?id=11877

Вы можете связать этот атрибут с функцией, которая возвращает SystemFonts.MenuFontSize, и получить желаемый текст большего размера.

...