ListPickerFlyout игнорирует RequestedTheme родительской страницы в Windows Phone 8.1

У меня есть Page в приложении WinRT для Windows Phone 8.1. Эта страница имеет RequestedTheme значение ElementTheme.Light. Системная тема (как указано в настройках системы) установлена ​​​​на темную.

Когда я открываю ListPickerFlyout (используя Button.Flyout), результат следующий:

введите здесь описание изображения

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

Во всплывающем меню нет свойства Background, есть ли способ заставить его соответствовать запрашиваемой теме страницы?


person Jan Kratochvil    schedule 31.05.2014    source источник


Ответы (2)


Отличный вопрос!

В ресурсах приложения вы можете переопределить ресурс под названием FlyoutBackgroundThemeBrush для светлых тем.

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.ThemeDictionaries>
            <ResourceDictionary x:Key="Light">
                <SolidColorBrush x:Key="FlyoutBackgroundThemeBrush" Color="Green" />
            </ResourceDictionary>
        </ResourceDictionary.ThemeDictionaries>
    </ResourceDictionary>
</Application.Resources>

Это сделает его зеленым для подтверждения концепции. :)

person Igor Ralic    schedule 31.05.2014
comment
Спасибо за совет, хотя это не решило мою проблему, которая была вызвана другой проблемой (как объяснено в моем ответе). - person Jan Kratochvil; 01.06.2014
comment
@JanKratochvil отличный улов! Отметьте свой ответ, чтобы помочь другим! :) - person Igor Ralic; 01.06.2014
comment
@igrali есть ли какая-нибудь кисть для диалога сообщений? У меня такая же проблема с диалоговым окном сообщений? и установка запрошенной приложением темы на Light не решает эту проблему - person Muhammad Saifullah; 28.08.2014

Проблема в том, что всплывающие окна используют RequestedTheme не Страницы, а RequestedTheme Приложения.

В этом случае решение состоит в том, чтобы установить Application.Current.RequestedTheme = ApplicationTheme.Light в дополнение к настройке Page.RequestedTheme = ElementTheme.Light.

person Jan Kratochvil    schedule 01.06.2014
comment
Спасибо, ваш вопрос и ответ помогли мне. Я столкнулся с похожей проблемой, и я думаю, что вы могли бы помочь. Не могли бы вы взглянуть? stackoverflow.com/questions/28425544/ - person HelpMatters; 10.02.2015