ListPickerFlyout忽略Windows Phone 8.1中父页面的RequestedTheme

时间:2014-05-31 16:59:45

标签: winrt-xaml windows-phone-8.1

我在WinRT Windows Phone 8.1应用程序中有一个Page。此页面的RequestedTheme设置为ElementTheme.Light。系统主题(在系统设置中设置)设置为黑暗。

当我打开ListPickerFlyout(使用Button.Flyout)时,结果如下:

enter image description here

看起来,前景色适当地变为黑色,但背景保持黑暗主题(非常深灰色)。

弹出窗口中没有背景属性,是否有办法强制它符合Page的RequestedTheme?

2 个答案:

答案 0 :(得分:6)

很棒的问题!

在应用程序资源中,您可以覆盖名为FlyoutBackgroundThemeBrush for Light主题的资源。

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

这将使其成为概念验证的绿色。 :)

答案 1 :(得分:5)

问题在于弹出窗口不会使用Page的RequestedTheme,而是App的RequestedTheme。

在这种情况下,除了设置Application.Current.RequestedTheme = ApplicationTheme.Light之外,解决方案是设置Page.RequestedTheme = ElementTheme.Light