Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Платформа ленты Windows предоставляет набор свойств цвета, позволяющих приложению настраивать внешний вид различных элементов интерфейса ленты в процессе работы.
Знакомство
Ключи свойств платформы и, перечисленные в следующей таблице, используются для задания цвета различных элементов пользовательского интерфейса в приложении с ленточным интерфейсом. Эти свойства позволяют ленточному интерфейсу поддерживать персонализацию, требования к идентификации и брендинговые спецификации в приложениях.
Цвет ленты | Ключ свойства фреймворка |
---|---|
Цвет фона | UI_PKEY_GlobalBackgroundColor |
Цвет выделения (только Для Windows 7) |
UI_PKEY_GlobalHighlightColor**внедрено в Windows 8: ** UI_PKEY_GlobalHighlightColor нельзя задать независимо от UI_PKEY_GlobalBackgroundColor. |
Цвет текста |
UI_PKEY_GlobalTextColorв Windows 8: Изменения в значении по умолчанию UI_PKEY_GlobalBackgroundColor в Windows 8 могут потребовать корректировки UI_PKEY_GlobalTextColor в приложениях с лентой, предназначенных для Windows 7. |
Указание цветов ленты
Платформа фреймворк Ribbon использует цветовую модель Hue, Saturation, Brightness (HSB), которая отличается от более распространенных оттенка, насыщенности, светлоты (HSL) или оттенка, насыщенности, значения (HSV). В частности, B представляет общий уровень яркости или светимости, а не светлоты определенного цвета.
Чтобы приложение указало цвет элементов пользовательского интерфейса в инфраструктуре "Ribbon", оно назначает значения HSB каждому из глобальных свойств цвета. Затем эти значения применяются универсально ко всем элементам ленты, как это требуется приложению ленты (платформа не поддерживает назначение значений HSB отдельным элементам и элементам управления).
** в Windows 8: **UI_PKEY_GlobalHighlightColor присваивается то же значение, что и UI_PKEY_GlobalBackgroundColor.
В следующей таблице описаны параметры HSB фреймворка Ribbon.
Компонент
Описание
Скорректированные значения*
Оттенок (H)
Пигмент или фактический цвет обычно определяется как значение из кругулярного диапазона от 0 до 359 градусов.
0 (красный) до 255 (красный)
Насыщенность (S)
Чистота или насыщенность цвета, измеряемого в процентах от 0 до 100%.
0 (серый) до 255 (полностью насыщенный)
Яркость (B)
Общая яркость или темнота цвета измеряется в процентах от 0 до 100%.
0 (темная) до 255 (свет)
* Исходный диапазон для каждого значения параметра преобразуется в диапазон от 0 до 255 для платформы.
Значения HSB не определяют определенные цвета. Вместо этого сочетание значений свойств HSB влияет на то, как градиенты цвета во всем пользовательском интерфейсе корректируются относительно друг друга.
При назначении пользовательских значений HSB UI_PKEY_GlobalTextColor и UI_PKEY_GlobalBackgroundColorрекомендуется, чтобы эти значения были достаточно контрастными, чтобы обеспечить удобочитаемость. В частности, цвет текста должен быть темнее, чем самый светлый оттенок пользовательского интерфейса ленты. При необходимости платформа автоматически настраивает значение HSB UI_PKEY_GlobalTextColor для обеспечения достаточной контрастности с любым фоновым оттенком или градиентом, производным от UI_PKEY_GlobalBackgroundColor.
Заметка
В Windows 7 UI_PKEY_GlobalHighlightColor можно задать независимо от UI_PKEY_GlobalBackgroundColor.
В следующем примере показано, как указать настраиваемый цвет для свойств UI_PKEY_GlobalTextColor, UI_PKEY_GlobalBackgroundColorи UI_PKEY_GlobalHighlightColor.
CComPtr<IPropertyStore> spPropertyStore;
// _spFramework is a pointer to the IUIFramework interface that is assigned
// when the Ribbon is initialized.
if (SUCCEEDED(_spFramework->QueryInterface(&spPropertyStore)))
{
PROPVARIANT propvarBackground;
PROPVARIANT propvarHighlight;
PROPVARIANT propvarText;
// UI_HSBCOLOR is a type defined in UIRibbon.h that is composed of
// three component values: hue, saturation and brightness, respectively.
UI_HSBCOLOR BackgroundColor = UI_HSB(0x14, 0x38, 0x54);
UI_HSBCOLOR HighlightColor = UI_HSB(0x00, 0x36, 0x87);
UI_HSBCOLOR TextColor = UI_HSB(0x2B, 0xD6, 0x00);
InitPropVariantFromUInt32(BackgroundColor, &propvarBackground);
InitPropVariantFromUInt32(HighlightColor, &propvarHighlight);
InitPropVariantFromUInt32(TextColor, &propvarText);
spPropertyStore->SetValue(UI_PKEY_GlobalBackgroundColor, propvarBackground);
spPropertyStore->SetValue(UI_PKEY_GlobalTextColor, propvarText);
spPropertyStore->Commit();
}
Преобразование RGB в HSB
В этом разделе описывается формула, необходимая для динамического сопоставления значения HSB платформы ленты, UI_PKEY_GlobalBackgroundColor в этом примере с определенным цветом RGB в ходе выполнения программы.
Фон строки вкладок используется в качестве эталонной точки, так как он представлен как плоская цветовая грань по сравнению с градиентом яркости фона ленты.
Предварительное преобразование необходимо для получения промежуточного значения HSL. Затем это значение HSL можно преобразовать в значение HSB.
Заметка
Преобразование из RGB в HSL легко достигается с помощью большинства программ редактирования фотографий.
Преобразование HSL (с каждым компонентом в диапазоне от 0.0 до 1.0) в настройку Ribbon HSB осуществляется по следующим формулам:
- ФонH = Round(255.0 H)
- фон S = Round(255.0 S)
- Bфон = Round(257.7 + 149.9 ln(L)), если 0,1793 <= L <= 0,9821