我的UWP应用程序标题栏没有在Xamarin.Forms中更改其前景色

时间:2019-07-14 05:28:00

标签: c# xamarin.forms uwp

我正在使用Xamarin.Forms跨平台应用程序,并且在UWP端,我在MainPage.xaml.cs中添加了此代码,以更改应用程序标题栏以匹配我正在使用的导航栏:

        var titleBar = ApplicationView.GetForCurrentView().TitleBar;
        titleBar.BackgroundColor = Colors.LightSlateGray;
        titleBar.ForegroundColor = Colors.White;
        titleBar.InactiveBackgroundColor = Colors.LightSlateGray;
        titleBar.InactiveForegroundColor = Colors.White;
        titleBar.ButtonBackgroundColor = Colors.LightSlateGray;
        titleBar.ButtonForegroundColor = Colors.White;
        titleBar.ButtonInactiveBackgroundColor = Colors.LightSlateGray;
        titleBar.ButtonInactiveForegroundColor = Colors.White;

但是,当应用程序处于活动状态时,前景色为黑色:

enter image description here

该应用程序处于非活动状态时,实际上看起来是正确的:

enter image description here

我实际上已经注意到,在切换为黑色之前,文本会在短短的一秒钟内显示为白色。我应该稍后再运行此代码还是在其他地方?我在LoadApplication之前和之后都尝试过。我是否缺少某些东西,还是有更好的方法在Xamarin中处理?

2 个答案:

答案 0 :(得分:1)

因此,将前景色(启用时)设置为完全白色似乎是一个错误。也许Xamarin所做的事情将其取消了。我发现选择接近白色的颜色很好用,例如:

var titleBar = ApplicationView.GetForCurrentView().TitleBar;
titleBar.BackgroundColor = Colors.LightSlateGray;
titleBar.ForegroundColor = Colors.Snow;
titleBar.InactiveBackgroundColor = Colors.LightSlateGray;
titleBar.InactiveForegroundColor = Colors.White;
titleBar.ButtonBackgroundColor = Colors.LightSlateGray;
titleBar.ButtonForegroundColor = Colors.Snow;
titleBar.ButtonInactiveBackgroundColor = Colors.LightSlateGray;
titleBar.ButtonInactiveForegroundColor = Colors.White;

答案 1 :(得分:0)

在调用Window.Activate之后,尝试将其放入 UWP 应用的OnLaunched方法(App.xaml.cs)。