Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

Основываясь на этот поток (фон "Начальный экран" в качестве фона моих приложений) на MSDN - это недоступно.

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

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

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

Ответ 2

Алан,

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

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

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

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

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

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

Ответ 3

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