通知栏在灯光模式下全白显示

时间:2017-05-04 13:04:44

标签: c# uwp uwp-xaml windows-10-mobile template10

当我选择灯光模式时,我正在使用模板10和Windows 10移动版,通知栏显示为全白色

http://imgur.com/F6T7TKy.png

并且看不到通知,小时等。

在黑暗模式下,一切看起来都很精美:​​

http://imgur.com/j7nXoee.png

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

正如@mvermef所说,为了解决这个问题,我们可以根据应用程序的主题设置状态栏中使用的颜色。我们可以使用Application.RequestedTheme属性获取应用程序的主题,并使用Status​Bar类中的属性设置状态栏的颜色。举个简单的例子:

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;
            }
        }
    }
}

请注意,要使用Status​Bar课程,我们需要在项目中引用适用于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引用..