Как сделать Windows Ribbon Framework честью размер шрифта пользователя? - программирование
Подтвердить что ты не робот

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

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

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

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

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

enter image description here

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

Бонус-чат

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

  • Значок Название шрифта
  • Статусный шрифт
  • Шрифт сообщений
  • Шрифт меню
  • шрифт надписи
  • Маленький шрифт подписи

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

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

//.NET
SystemFonts.MenuFont;

//Delphi
TScreen.MenuFont

Цвет ленты:

По умолчанию лента не соблюдает цветовую схему пользователя (обратите внимание, что на моих скриншотах синяя лента с моим коричневым цветом). Существует ави, чтобы изменить цвет ленты, как вы можете видеть на 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: как изменить шрифт и размер шрифта? (Этот вопрос касался того, как установить произвольный шрифт и размер шрифта, который можно было бы использовать для чести пользовательские предпочтения шрифтов Windows. Этот вопрос касается инструктирования самой ленты о соблюдении предпочтений шрифта пользователя, но при этом не может указать произвольный шрифт/размер шрифта)
4b9b3361

Ответ 1

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

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