更改强调色时 W8.1P 应用程序中的自动更新按钮

Auto-update buttons in W8.1P App when Accent colour is changed

我有一个带有多个按钮的应用程序,我已将背景设置为与 phone 的强调色相匹配。我注意到,如果用户在我的应用程序在后台打开的情况下更改了强调颜色,那么按钮将保留以前的颜色。该应用程序必须关闭(按住按钮,滑动屏幕)并再次打开以更新按钮。有没有办法让我的应用程序在每次显示主页时自动检查强调色?

因为 Accent 只能在您的应用之外更改,所以您可以在 MainPage 导航到时更改其颜色。

protected override void OnNavigatedTo(NavigationEventArgs e)

如果你不使用MainPage.Foreground,你可以利用它,通过绑定到所有你想要的按钮,并且只需要一行就可以在上面的相同功能中设置它。

// in MainPage.xaml.cs

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    this.Foreground = App.Current.Resources["PhoneAccentBrush"] as Brush;
}

<!-- in MainPage.xaml -->

<Page
    ....    
    x:Name="Root">

    <Grid>
        <Button Foreground="{Binding Path=Foreground, ElementName=Root}"
                Content="..."/>
    </Grid>
</Page>