C# 如何制作Xamarin应用程序全屏(全屏)

C# 如何制作Xamarin应用程序全屏(全屏),c#,android,ios,xamarin,fullscreen,C#,Android,Ios,Xamarin,Fullscreen,我使用Xamarin 4.5开发,无法找到如何将应用程序覆盖整个屏幕(全屏) 适用于Android和iOS 注意:我不希望只有图像或视频覆盖整个屏幕,它应该是所有的应用程序,应该覆盖整个屏幕 更新2020-04-29 我找到了一半的解决方案,只有Android部分(在FabriBertani的帮助下,我的答案中包含了状态栏)。我测试过了,效果很好。现在我必须为iPhone找到一个解决方案(或者至少,找到一种在iPhone上测试的方法)。在Android上,将此添加到MainActivity的On

我使用Xamarin 4.5开发,无法找到如何将应用程序覆盖整个屏幕(全屏)

适用于Android和iOS

注意:我不希望只有图像或视频覆盖整个屏幕,它应该是所有的应用程序,应该覆盖整个屏幕

更新2020-04-29
我找到了一半的解决方案,只有Android部分(在FabriBertani的帮助下,我的答案中包含了状态栏)。我测试过了,效果很好。现在我必须为iPhone找到一个解决方案(或者至少,找到一种在iPhone上测试的方法)。

在Android上,将此添加到MainActivity的
OnCreate
方法中:

this.Window.AddFlags(WindowManagerFlags.Fullscreen);
对于iOS,将这些值添加到
info.plist
文件:

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
或者在C#代码背后

public YourPage()
{
    InitializeComponent();

    NavigationPage.SetHasNavigationBar(this, false);
}
如果要将此添加到所有页面,我建议您使用此创建一个基本页面,然后在所有页面中使用此基本页面

public class BaseContentPage : ContentPage
{
    public BaseContentPage
    {
        NavigationPage.SetHasNavigationBar(this, false);
    }
}
并在xaml上使用它:

<?xml version="1.0" encoding="UTF-8"?>
<local:BaseContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:YourNamespace.Pages"
    x:Class="YourNamespace.Pages.YourPage">
</local:BaseContentPage>

这是解决方案的一半。对于Android:

在Android项目中。在MainActivity.OnCreate中,添加:

this.Window.AddFlags(WindowManagerFlags.Fullscreen); // Hide StatusBar, from FabriBertani

MessagingCenter.Subscribe<Object>(this, "HideOsNavigationBar", (sender) => 
{
  int uiOptions = (int)Window.DecorView.SystemUiVisibility;
  uiOptions |= (int)SystemUiFlags.HideNavigation;
  Window.DecorView.SystemUiVisibility = (StatusBarVisibility) SystemUiFlags.HideNavigation;
});
this.Window.AddFlags(WindowManagerFlags.Fullscreen);//从FabriBertani隐藏状态栏
订阅(此“HideoNavigationBar”,(发件人)=>
{
int uiOptions=(int)Window.DecorView.systemui可见性;
uiOptions |=(int)SystemUiFlags.HideNavigation;
Window.DecorView.SystemUiVisibility=(StatusBarVisibility)SystemUiFlags.HideNavigation;
});
在共享项目中。进入主页构造函数(我把它放在InitializeComponent()之后,但我怀疑它是否必要):

MessagingCenter.Send(这是“HideoNavigationBar”);

谢谢!!!!安卓系统听起来不错,但模拟器底部仍然有导航按钮(可能正常)。让我用一周左右的时间来检查一下真正的设备,看看结果(我是Xamarin的新手)。现在非常感谢。我不会忘记你,如果一切都符合预期,我会在测试后标记为好答案。谢谢FabriBertani,我无法删除导航按钮。我以为这是因为我在做一个“细节大师”项目。我用一个简单的页面项目创建了另一个。(由于模拟器停止工作,我还不得不重新安装VS2019)。但是,导航始终可见???我的代码(包括一些测试):顺便说一下。。。导航按钮是Android的一部分(3个按钮:trinagle、circle和square)。我找不到如何移除该条???嗨,很高兴找到解决方案!记得在可能的时候标记它:-)当我找到一种方法用iOS测试它并确保它工作时,我会将正确的答案标记为好答案。:-)很好,很好。如果在iOS中找到解决方案,也将在此处共享。
this.Window.AddFlags(WindowManagerFlags.Fullscreen); // Hide StatusBar, from FabriBertani

MessagingCenter.Subscribe<Object>(this, "HideOsNavigationBar", (sender) => 
{
  int uiOptions = (int)Window.DecorView.SystemUiVisibility;
  uiOptions |= (int)SystemUiFlags.HideNavigation;
  Window.DecorView.SystemUiVisibility = (StatusBarVisibility) SystemUiFlags.HideNavigation;
});
MessagingCenter.Send<Object>(this, "HideOsNavigationBar");