Как сделать так, чтобы значки на панели приложений менялись в зависимости от текущей темы? - PullRequest
3 голосов
/ 29 марта 2011

В приложениях WP7, какой способ отображения значков на панели приложений соответствует текущей теме (светлый / темный)? Мне действительно нужно использовать «хак», чтобы определить текущую тему и установить значки на основе этого, или есть лучший способ?

Ответы [ 3 ]

8 голосов
/ 29 марта 2011

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

3 голосов
/ 26 февраля 2012

Просто используйте ресурс PhoneDarkThemeVisibility:

<Image Source="pathToLightImage.png" Visibility="{StaticResource PhoneLightThemeVisibility}" />

<Image Source="pathToDarkImage.png" Visibility="{StaticResource PhoneDarkThemeVisibility}" />

В зависимости от настроек пользователя будет отображаться только один из двух элементов.Он доступен в Mango.

Другой вариант - использовать только одно изображение с настроенной OpacityMask.Вы можете узнать больше об этом здесь .

1 голос
/ 29 марта 2011

Я бы посоветовал вам хранить оба набора значков, темных и светлых, и динамически создавать панель приложений в коде позади.Затем дайте пользователю возможность выбрать, какую тему он хотел бы, и обрабатывать загружаемые значки с помощью простого оператора if ... else.

Теперь, чтобы определить, какую тему использует пользователь, вы можете проверитьресурс phonelightthemevisibility.Проверьте, виден ли этот ресурс.

Visibility v = (Visibility)Resources["PhoneLightThemeVisibility"];
if(v = System.Windows.Visibility.Visible)
{
   //Use icons for light theme
}
else
{
   //Use icons for dark theme
}

Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...