Partilhar via


StatusBarBehavior

O StatusBarBehavior fornece a capacidade de personalizar a cor e o estilo de uma barra de status de dispositivos.

O StatusBarBehavior aplica os valores de cor e estilo quando as propriedades são atualizadas. Os valores também são aplicados com base na propriedade ApplyOn, que possibilita definir qual evento de ciclo de vida é usado:

  • StatusBarApplyOn.OnBehaviorAttachedTo - Aplica a cor e o estilo quando o comportamento é anexado a uma página. Esse é o padrão.
  • StatusBarApplyOn.OnPageNavigatedTo - Aplica a cor e o estilo quando a página é navegada.

Observação

Se o aplicativo alterar a aparência da barra de status por página, você deverá usar o valor StatusBarApplyOn.OnPageNavigatedTo para a propriedade ApplyOn. Caso contrário, ao navegar de volta, o sistema preservará a aparência da barra de status da página da, e não para a qual o usuário navegou.

Importante

Os comportamentos do .NET MAUI Community Toolkit não definem o BindingContext de um comportamento, porque os comportamentos podem ser compartilhados e aplicados a vários controles por meio de estilos. Para mais informações confira Comportamentos do .NET MAUI

Sintaxe

XAML

Incluir o namespace XAML

Para usar o kit de ferramentas no XAML, o xmlns a seguir precisa ser adicionado à sua página ou exibição:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

Portanto, o seguinte:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">

</ContentPage>

Seria modificado para incluir o xmlns conforme o seguinte:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">

</ContentPage>

Usar o StatusBarBehavior

O StatusBarBehavior pode ser usado da seguinte maneira em XAML:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
             x:Class="MyLittleApp.MainPage">
    
    <ContentPage.Behaviors>
        <toolkit:StatusBarBehavior StatusBarColor="Fuchsia" StatusBarStyle="LightContent" />
    </ContentPage.Behaviors>

</ContentPage>

C#

O StatusBarBehavior pode ser usado da seguinte maneira em C#:

class MyPage : ContentPage
{
    public MyPage()
    {
        this.Behaviors.Add(new StatusBarBehavior
        {
            StatusBarColor = Colors.Red,
            StatusBarStyle = StatusBarStyle.LightContent
        });
    }
}

Há outra maneira de acessar as APIs da barra de status em C# – é possível chamar os métodos diretamente, como pode-se ver no snippet abaixo:

class MyPage : ContentPage
{
    protected override void OnNavigatedTo(NavigatedToEventArgs args)
    {
        base.OnNavigatedTo(args);
        CommunityToolkit.Maui.Core.Platform.StatusBar.SetColor(statusBarColor);
        CommunityToolkit.Maui.Core.Platform.StatusBar.SetStyle(StatusBarStyle.LightContent);
    }
}

Aviso

Se você quiser adicionar este código ao construtor MainPage, métodos OnAppearing ou OnNavigatedTo, use Behavior em vez disso. Usar diretamente nesses locais pode causar falhas no seu aplicativo, pois os componentes específicos da plataforma podem não ser inicializados.

Configuração

Nenhuma alteração é necessária.

Propriedades

Propriedade Type Descrição
ApplyOn StatusBarBehavior Quando aplicar a cor e o estilo da barra de status.
StatusBarColor Cor O nome Color do namespace Microsoft.Maui.Graphics.
StatusBarStyle StatusBarStyle O estilo usado pela barra de status pode ser LightContent, DarkContent ou Default.

Exemplos

Você pode encontrar um exemplo desse comportamento em ação no Aplicativo de exemplo do .NET MAUI Community Toolkit.

API

O código-fonte do StatusBarBehavior pode ser encontrado no repositório GitHub do .NET MAUI Community Toolkit.