我最近将 Jeff Wilcox 的 PhoneThemeManager 添加到我的应用程序中,效果很好,尽管我在将应用程序栏按钮更改为我希望使用的颜色时遇到了问题。我的应用程序设计规范需要使用 Light Theme。我遇到的问题是,当设备已经处于浅色主题时,在应用程序加载时,appbar 前景是正确的颜色,因为 PhoneThemeManager 不会覆盖任何值,尽管在深色主题中,appbar 前景值是黑色(模仿浅色主题中的默认前景设置)。
根据他的网站,“如果您的应用程序中有类似“var ab = new ApplicationBar”的代码,请注意该应用程序栏默认采用系统的实际主题颜色,而不是使用应用程序。
如果你需要新建一个ApplicationBar,你应该使用ThemeManager.CreateApplicationBar()
我添加的app bar的便捷方法或扩展方法MatchOverriddenTheme
,来设置颜色值。”
我不确定如何实现此功能以获取自定义 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 应用栏中,我希望相应地更改按钮
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
...
}
有任何想法吗?