Winrt xaml ListPickerLyout忽略Windows Phone 8.1中父页面的请求主题

Winrt xaml ListPickerLyout忽略Windows Phone 8.1中父页面的请求主题,winrt-xaml,windows-phone-8.1,Winrt Xaml,Windows Phone 8.1,我在WinRT Windows Phone 8.1应用程序中有一个页面。此页面已将RequestedTheme设置为ElementTheme.Light。系统主题(在系统设置中设置)设置为暗 当我打开一个列表PickerFlyOut(使用Button.Flyout)时,结果如下: 看起来,前景颜色会适当地变为黑色,但背景会保持黑色主题(非常深的灰色) 弹出按钮上没有背景属性,有没有办法强制它符合页面的请求主题?好问题 在应用程序资源中,您可以覆盖名为FlyoutBackgroundThemeB

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

当我打开一个
列表PickerFlyOut
(使用Button.Flyout)时,结果如下:

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

弹出按钮上没有背景属性,有没有办法强制它符合页面的请求主题?

好问题

在应用程序资源中,您可以覆盖名为FlyoutBackgroundThemeBrush的资源,用于灯光主题

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


这将使其成为绿色,用于概念验证。:)

问题在于,弹出按钮不使用页面的RequestedTheme,而是使用应用程序的RequestedTheme。


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

谢谢你的提示,尽管这并没有解决我的问题,这是由另一个问题引起的(如我的回答所述)。@JanKratochvil great catch!标记您的答案以帮助他人!:)@igrali是否有用于消息对话框的刷子?我在Message Dialog中面临同样的问题?通过将应用程序请求的主题设置为“轻”并不能解决此问题。您的问题和回答帮助了我。我正面临着一个类似的问题,我想你也许能帮上忙。你能看一下吗?