Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows 10移动应用程序中带有黑色字体的黑色状态栏_C#_Xaml_Win Universal App_Uwp - Fatal编程技术网

C# Windows 10移动应用程序中带有黑色字体的黑色状态栏

C# Windows 10移动应用程序中带有黑色字体的黑色状态栏,c#,xaml,win-universal-app,uwp,C#,Xaml,Win Universal App,Uwp,我有一个Windows10UWP应用程序在手机上运行。当我在模拟器中运行应用程序时,一切正常。当我在设备(Lumia 550)上运行它时,状态栏是黑色的,带有黑色字体,并且状态指示器不可见 这是某种臭虫吗 我知道我可以强制状态栏有白色背景和黑色,但应用程序的要求是坚持主题(黑色状态栏在黑暗中的主题,白色在光明中的主题) 如果我创建一个新的空Windows 10应用程序并在设备上运行它,问题是相同的,它不是特定于我的应用程序。编辑 这里有一个更恰当的答案: 在Windows10Mobile中,状

我有一个Windows10UWP应用程序在手机上运行。当我在模拟器中运行应用程序时,一切正常。当我在设备(Lumia 550)上运行它时,状态栏是黑色的,带有黑色字体,并且状态指示器不可见

这是某种臭虫吗

我知道我可以强制状态栏有白色背景和黑色,但应用程序的要求是坚持主题(黑色状态栏在黑暗中的主题,白色在光明中的主题)

如果我创建一个新的空Windows 10应用程序并在设备上运行它,问题是相同的,它不是特定于我的应用程序。

编辑
这里有一个更恰当的答案:

在Windows10Mobile中,状态栏从最上面的页面继承其背景色。前景色继承自
RequestedTheme

这意味着,如果您将页面的背景色设置为黑色,并且将
请求的主题
设置为
灯光
(该选项提供白色前景色),则文本将为黑色

原创帖子
你读过这个吗


这可能会对你有所帮助。

我对此有些挣扎

奇怪的是,当我启动应用程序时,主题(
Application.RequestedTheme
)总是亮起,忽略了手机上的设置。即使我试图在构造函数中将其设置为暗,它也会立即恢复为亮。这可以解释黑色的前景色

我还体验到模拟器和设备之间的不一致性。为了解决这个问题,我(如其他答案中所建议的)设置了页面的背景色(而不是根网格):



这样,状态栏至少看起来是可读的。

只需在App.xaml中添加
RequestedTheme=“Dark”
,在参考管理器中为UWP添加Windows Mobile扩展

然后在上的
App.XAML.cs

protected override void OnLaunched(LaunchActivatedEventArgs e)

如果您想更改UWP应用程序PC版上的标题栏,则可以使用此选项

if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.ApplicationView"))
{
    var titleBar = ApplicationView.GetForCurrentView().TitleBar;
    if (titleBar != null)
    {
        titleBar.ButtonBackgroundColor = Colors.DarkBlue;
        titleBar.ButtonForegroundColor = Colors.White;
        titleBar.BackgroundColor = Colors.Blue;
        titleBar.ForegroundColor = Colors.White;
    }
 }

如果您的Light主题项目的黑色背景上有黑色字体,只需将这一行添加到
App.xaml.cs
中的
OnLaunched
方法中:

rootFrame.Background = new SolidColorBrush(Colors.White);

对我来说似乎是个bug,如果它也发生在一个空项目上。。。您正在运行版本10586.29吗?是的,在L550上运行版本10.0.10586.29。如果您将主题更改为轻主题,我可以问一下空项目的外观吗?那么它是白色对白色吗?默认灯光Theme For me Background=“{ThemeResource Application HeaderFore GroundTheMebrush}”起作用
rootFrame.Background = new SolidColorBrush(Colors.White);