次の方法で共有


StatusBarBehavior

StatusBarBehavior は、デバイスのステータス バーの色とスタイルをカスタマイズする機能を提供します。

StatusBarBehavior は、プロパティの更新時に色とスタイルの値を適用します。 値は ApplyOn プロパティにも基づいて適用されます。このプロパティを使用すると、使用するライフサイクル イベントを定義できます。

  • StatusBarApplyOn.OnBehaviorAttachedTo - 動作がページにアタッチされている場合に色とスタイルを適用します。 既定値です。
  • StatusBarApplyOn.OnPageNavigatedTo - ページの移動時に色とスタイルを適用します。

Note

アプリケーションのページごとにステータス バーの外観を変更する場合は、ApplyOn プロパティの StatusBarApplyOn.OnPageNavigatedTo 値を使用する必要があります。 それ以外の場合は、システムに戻ったときに、ユーザーが前にいたページのステータス バーの外観が保持されます。

重要

.NET MAUI Community Toolkit のビヘイビアーでは、ビヘイビアーの BindingContext は設定されません。ビヘイビアーはスタイルを利用して共有し、複数のコントロールに適用できるためです。 詳細については、「.NET MAUI のビヘイビアー」を参照してください

構文

XAML

XAML 名前空間を含める

XAML でこのツールキットを使用するには、次の xmlns をページまたはビューに追加する必要があります。

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

したがって、以下のコードは、

<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>

次のように、xmlns を含むように変更されます。

<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>

StatusBarBehavior を使用する

StatusBarBehavior は、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#

StatusBarBehavior は、C# では次のように使用できます。

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

C# で Statusbar API にアクセスする方法は他にもあり、次のスニペットに示すように、メソッドを直接呼び出すことができます。

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);
    }
}

警告

このコードを MainPage のコンストラクター、OnAppearing または OnNavigatedTo のメソッドに追加する場合は、代わりに Behavior を使用してください。 これらの場所で直接使用すると、プラットフォーム固有のコンポーネントが初期化されない場合があるため、アプリケーションがクラッシュする可能性があります。

構成

変更は必要ありません。

プロパティ

プロパティ タイプ 説明
ApplyOn StatusBarBehavior ステータス バーの色とスタイルを適用するタイミング。
StatusBarColor Microsoft.Maui.Graphics 名前空間の Color 名。
StatusBarStyle StatusBarStyle ステータス バーで使用されるスタイルは、LightContent、DarkContent、Default です。

このビヘイビアーの動作の例は .NET MAUI Community Toolkit サンプル アプリケーションで確認できます。

API

StatusBarBehavior のソース コードは、.NET MAUI Community Toolkit の GitHub リポジトリにあります。