通知栏在浅色模式下显示为全白
Notification bar appears all white in light mode
我使用的是模板 10,在 Windows 10 移动版中,当我选择灯光模式时,通知栏显示为全白
并且看不到通知、时间等
在黑暗模式下一切看起来都很好图像:
我该如何解决这个问题?
正如@mvermef所说,要解决这个问题,我们可以根据应用程序的主题设置状态栏使用的颜色。我们可以使用 Application.RequestedTheme property and set status bar's color by using properties in StatusBar Class 获取应用程序的主题。举个简单的例子:
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
Class,我们需要参考Windows项目中UWP的移动扩展。
在我的数据库 setup/migrations 完成后,我在我的汉堡包覆盖 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 所说,您还必须包括移动参考..
我使用的是模板 10,在 Windows 10 移动版中,当我选择灯光模式时,通知栏显示为全白
并且看不到通知、时间等
在黑暗模式下一切看起来都很好图像:
我该如何解决这个问题?
正如@mvermef所说,要解决这个问题,我们可以根据应用程序的主题设置状态栏使用的颜色。我们可以使用 Application.RequestedTheme property and set status bar's color by using properties in StatusBar Class 获取应用程序的主题。举个简单的例子:
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
Class,我们需要参考Windows项目中UWP的移动扩展。
在我的数据库 setup/migrations 完成后,我在我的汉堡包覆盖 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 所说,您还必须包括移动参考..