我最近将Jeff Wilcox的PhoneThemeManager添加到了我的应用程序中,虽然我在将应用程序栏按钮更改为我想要使用的颜色方面遇到了问题但效果很好。我的应用程序设计规范要求使用Light主题。我遇到的问题是当设备已经处于浅色主题时,在应用程序加载时,appbar前景是正确的颜色,因为PhoneThemeManager不会覆盖任何值,尽管在黑暗主题中appbar前景值是黑色的(模仿灯光主题中的默认前景设置。
根据他的网站,“如果您的应用程序中有代码,例如”var ab = new ApplicationBar“,请注意该应用程序栏默认采用系统的实际主题颜色,而不是被覆盖的亮/暗颜色适用于应用程序。
如果您需要新建一个ApplicationBar,您应该使用ThemeManager.CreateApplicationBar()
的便捷方法或使用我添加的应用栏上的扩展方法MatchOverriddenTheme
来设置颜色值。“< / p>
我不确定如何实现此功能以获取自定义appbar按钮颜色。
我做了以下
public App()
{
// Global handler for uncaught exceptions.
UnhandledException += Application_UnhandledException;
// Standard Silverlight initialization
InitializeComponent();
// Phone-specific initialization
InitializePhoneApplication();
ThemeManager.ToLightTheme();
// Other code that might be here already...
}
在我的MainPage appbar中,我希望相应地更改按钮
private void BuildLocalizedApplicationBar()
{
// Set the page's ApplicationBar to a new instance of ApplicationBar.
ApplicationBar = new ApplicationBar();
ApplicationBar.ForegroundColor = Color.FromArgb(255, 35, 85, 155);
//Not sure where or how to use this?
ApplicationBar.MatchOverriddenTheme(); //to override ThemeManager defaults
//Create appbar buttons
...
}
有什么想法吗?