更改强调色时 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>
我有一个带有多个按钮的应用程序,我已将背景设置为与 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>