Удалите панель навигации в приложении Xamarin Forms с помощью Caliburn.Микро

при использовании FormsApplication базовый класс с новым Xamarin.Формы приложения с помощью Caliburn.Микро, я заканчиваю с пустой навигационной панелью в верхней части экрана. Я предполагаю, что он создается Caliburn.Микро как-то, потому что из коробки Xamarin.Приложения форм нет.

есть ли способ использовать Caliburn.Микро с Xamarin.Формы без этой панели навигации?

3 ответов


Я не использовал Caliburn.Микро, но я предполагаю, что он обертывает вашу страницу с NavigationPage, Как вы описываете, что произойдет, если это так.

вы должны иметь возможность скрыть эту панель навигации, установив простой атрибут на своей странице следующим образом:

<ContentPage NavigationPage.HasNavigationBar="false"
    ..... >
</ContentPage>

Если вы не используете страницы XAML и вместо этого делаете весь свой пользовательский интерфейс в коде, то вы можете сделать это таким образом в своем конструкторе страницы:

NavigationPage.SetHasNavigationBar(this, false);

это работает для меня:

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);
    this.Window.AddFlags(WindowManagerFlags.Fullscreen); // hide the status bar

                // Set our view from the "main" layout resource
    SetContentView(Resource.Layout.Main);

    int uiOptions = (int)Window.DecorView.SystemUiVisibility;

    uiOptions |= (int)SystemUiFlags.LowProfile;
    uiOptions |= (int)SystemUiFlags.Fullscreen;
    uiOptions |= (int)SystemUiFlags.HideNavigation;
    uiOptions |= (int)SystemUiFlags.ImmersiveSticky;

    Window.DecorView.SystemUiVisibility = 
     (StatusBarVisibility)uiOptions;
}

Если вы используете Xamarin Forms 3.x попробуйте это в конструкторе

 SetValue(NavigationPage.HasNavigationBarProperty, false);
 InitializeComponent();