Цвет темы Windows 8 — программный доступ к нему

В предварительной версии Windows 8 для потребителей вы можете персонализировать свой опыт, в том числе установить «цвет фона», который затем также используется в качестве фона для выбранных плиток, панели приложений и т. д. Таким образом, выбор оранжевого цвета будет означать, что оранжевые акценты будут видны в пользовательском интерфейсе Windows 8 Metro. .

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

Я не могу найти способ получить этот цвет в своем XAML. Кажется разумным ожидать, что существует динамическая кисть или ресурс цвета системного уровня, на который вы могли бы ссылаться.

У кого-нибудь есть идеи ?


person Dean Chalk    schedule 22.03.2012    source источник


Ответы (3)


На основе этой темы (начало Фон экрана как фон моих приложений Metro) в MSDN — это недоступно.

Если ветка MSDN исчезнет, ​​сайт будет временно недоступен, или Microsoft переместит структуру каталогов и оставит бесхозные ссылки повсюду: соответствующий ответ от сотрудника Microsoft Роб Каплан сказал:

Приложения в стиле Metro не могут запрашивать цвет фона начального экрана.

Таким образом, это может быть истолковано как официальный ответ о том, что эта функция недоступна.

person Filip Skakun    schedule 22.03.2012
comment
+1. К сожалению, учитывая, что WP7 позволяет вам получить цвет акцента пользователя. - person Alan; 11.04.2012
comment
Я думаю, что для большинства приложений, вероятно, лучше определять темы независимо от ОС. На один раз это проще - вам не нужно беспокоиться о том, что дизайн вашего приложения поддерживает несколько тем, что включает в себя проверку темы и предоставление ресурсов, соответствующих каждой из этих тем. Представьте, что вам нужно предоставить значки или фоны, которые хорошо сочетаются со всеми возможными темами и, возможно, будущими темами, которые еще не доступны для тестирования. Кроме того, это, вероятно, лучше для брендинга вашего приложения. Тогда, возможно, Microsoft не хочет, чтобы люди думали, что ваше приложение является частью ОС... - person Filip Skakun; 11.04.2012
comment
И до сих пор не "nofollow noreferrer">доступно в Windows 8.1. Извините, этот цвет недоступен в рамках UI-фреймворков. Тим Хойер, руководитель программы, платформы пользовательского интерфейса - person Rowland Shaw; 13.06.2014
comment
Это доступно в Windows 10 - person Jerry Nixon; 26.09.2015

Алан,

Хотя я согласен с вами, что концепция «брендинга» имеет смысл, если вы планируете сложные графические наложения, получение основного цвета темы, доступного на Windows Phone, с использованием статической кисти темы, предоставляемой ОС, является лучшим выбором для основные цветовые темы в вашем приложении. Пользователь выбрал этот цвет, потому что считает его приятным для глаз. Что еще более важно, некоторые пользователи могут быть дальтониками по отношению к одному или нескольким цветам и выбрали лучший вариант для повышения удобочитаемости и доступности.

Наличие доступа к стандартной цветовой схеме позволяет вам оставаться в рамках светлой/темной темы и соответствовать стандартам доступности, требуемым многими корпорациями для всех программ для слабовидящих.

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

Не так уж сложно получить цвет темы из существующей кисти темы, которая предоставляется вам, например ProgressBarForegroundThemeBrush, путем добавления/вычитания значений, чтобы получить текущий цвет темы.

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

Я работаю программистом на Windows Phone с мая 2010 года.

person Thomas Mullen    schedule 07.12.2012

В UxTheme.dll есть несколько недокументированных API, которые извлекают цвета темы. Если вы используете эти функции и отправляете свое приложение в Магазин Windows, оно не пройдет сертификацию, и в целом в любом случае полагаться на недокументированные функции — плохая идея. Тем не менее, для тех, кто заинтересован в получении этих значений, я написал о процессе.

person Quppa    schedule 01.01.2013
comment
В дополнение к этому я составил справочную таблицу цветов темы, найденных в Windows 8. - person Quppa; 01.01.2013