答案 0 :(得分:1)
正如@mvermef所说,为了解决这个问题,我们可以根据应用程序的主题设置状态栏中使用的颜色。我们可以使用Application.RequestedTheme属性获取应用程序的主题,并使用StatusBar类中的属性设置状态栏的颜色。举个简单的例子:
public MainPage()
{
InitializeComponent();
NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
var statusBar = StatusBar.GetForCurrentView();
if (statusBar != null)
{
if (Application.Current.RequestedTheme == ApplicationTheme.Light)
{
statusBar.ForegroundColor = Windows.UI.Colors.Black;
}
else if (Application.Current.RequestedTheme == ApplicationTheme.Dark)
{
statusBar.ForegroundColor = Windows.UI.Colors.White;
}
}
}
}
请注意,要使用StatusBar
课程,我们需要在项目中引用适用于UWP的Windows Mobile Extensions 。
答案 1 :(得分:1)
在我的数据库设置/迁移完成后,我在汉堡包的覆盖UIElement CreateRootElement()
中执行此操作。
if(Template10.Utils.DeviceUtils.Current().IsPhone()){
var statusBar = Windows.UI.ViewManagement.StatusBar.GetForCurrentView();
if(statusBar != null)
{
if(Application.Current.RequestedTheme == ApplicationTheme.Light)
//background && foreground or combination, and dependent on color choices
statusBar.ForegroundColor = Windows.UI.Colors.Black;
else if(Application.Current.RequestedTheme == ApplicationTheme.Dark
statusBar.ForegroundColor = Windows.UI.Colors.White;
}
}
Template10已经内置了很多逻辑,只需要知道它在哪里。正如@Jay Zuo所说,你还必须包括Mobile引用..