Blazor Navigation Drawer (ナビゲーション ドロワー) の概要

    Blazor Navigation Drawer は、コンテンツ内で展開または縮小されることができるサイド ナビゲーションを提供します。ミニ バージョンが閉じている場合もナビゲーションへのクイック アクセスを提供します。そのコンテンツは完全にカスタマイズ可能であると同時に、デフォルトのメニュー項目のスタイルも提供します。

    Blazor Navigation Drawer の例

    このサンプルは、IgbNavDrawer コンポーネントを作成する方法を示しています。

    使用方法

    IgbNavDrawer を使用する前に、次のように登録する必要があります。

    // in Program.cs file
    
    builder.Services.AddIgniteUIBlazor(
      typeof(IgbNavDrawerModule),
      typeof(IgbNavDrawerHeaderItemModule)
    );
    

    また、追加の CSS ファイルをリンクして、スタイルを IgbNavDrawer コンポーネントに適用する必要があります。以下は、Blazor Web Assembly プロジェクトの wwwroot/index.html ファイルまたは Blazor Server プロジェクトの Pages/_Host.cshtml ファイルに配置する必要があります:

    <link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
    

    IgbNavDrawer の使用を開始する最も簡単な方法は次のとおりです:

    <IgbNavDrawer Open="true">
        <IgbNavDrawerHeaderItem>
            Sample Drawer
        </IgbNavDrawerHeaderItem>
        <IgbNavDrawerItem>
            <IgbIcon @ref="@HomeIcon" slot="icon" IconName="home" Collection="material"></IgbIcon>
            <span slot="content">Home</span>
        </IgbNavDrawerItem>
        <IgbNavDrawerItem>
            <IgbIcon @ref="@SearchIcon" slot="icon" IconName="search" Collection="material"></IgbIcon>
            <span slot="content">Search</span>
        </IgbNavDrawerItem>
    </IgbNavDrawer>
    

    以下は結果です:

    ドロワーには任意のコンテンツを提供できますが、IgbNavDrawerItem が定義済みのスタイル設定を項目に適用します。

    コンポーネントを少し強化するために、IgbNavbar と組み合わせて使用できます。このようにして、より完成された外観を実現し、ドロワーの方法を使用できます。次の例でこれを見てみましょう:

    <IgbNavbar>
        <IgbIcon slot="start" IconName="menu" Collection="material" />
        <h2>Home</h2>
    </IgbNavbar>
    
    <IgbNavDrawer @ref="NavDrawerRef">
        <IgbNavDrawerHeaderItem>
            Sample Drawer
        </IgbNavDrawerHeaderItem>
        <IgbNavDrawerItem>
            <IgbIcon slot="icon" IconName="home" Collection="material" />
            <span slot="content">Home</span>
        </IgbNavDrawerItem>
        <IgbNavDrawerItem>
            <IgbIcon slot="icon" IconName="search" Collection="material" @onclick="OnMenuIconClick" />
            <span slot="content">Search</span>
        </IgbNavDrawerItem>
    </IgbNavDrawer>
    

    また、すべての position の値を表示するためにいくつかのラジオ ボタンを追加しましょう。このように、1 つが選択されるたびに、ドロワーの位置を変更します。

    <IgbRadioGroup id="radio-group" Alignment="RadioGroupAlignment.Horizontal">
        <IgbRadio Value="Start" LabelPosition="RadioLabelPosition.After" Checked="true" Change="OnRadioOptionClick">Start</IgbRadio>
        <IgbRadio Value="End" LabelPosition="RadioLabelPosition.After" Change="OnRadioOptionClick">End</IgbRadio>
        <IgbRadio Value="Top" LabelPosition="RadioLabelPosition.After" Change="OnRadioOptionClick">Top</IgbRadio>
        <IgbRadio Value="Bottom" LabelPosition="RadioLabelPosition.After" Change="OnRadioOptionClick">Bottom</IgbRadio>
    </IgbRadioGroup>
    
    @code {
    
        public IgbNavDrawer NavDrawerRef { get; set; }
    
        public void OnRadioOptionClick(IgbComponentBoolValueChangedEventArgs args)
        {
            IgbRadio radio = args.Parent as IgbRadio;
    
            if (this.NavDrawerRef != null)
            {
                switch (radio.Value)
                {
                    case "Start":
                        {
                            this.NavDrawerRef.Position = NavDrawerPosition.Start;
                            break;
                        }
                    case "End":
                        {
                            this.NavDrawerRef.Position = NavDrawerPosition.End;
                            break;
                        }
                    case "Top":
                        {
                            this.NavDrawerRef.Position = NavDrawerPosition.Top;
                            break;
                        }
                    case "Bottom":
                        {
                            this.NavDrawerRef.Position = NavDrawerPosition.Bottom;
                            break;
                        }
                }
            }
        }
    }
    

    そして最後に、Navigation Drawer を開閉する方法が必要です。これを実現するにはいくつかの方法がありますが、この例のために、次のことを行います:

    public void OnMenuIconClick()
    {
        if(this.NavDrawerRef != null)
        {
            this.NavDrawerRef.Show();
        }
    }
    

    すべてがうまくいけば、コンポーネントは次のようになります:

    ミニ バリアント

    ミニ バリアントを使用する場合、Navigation Drawer を閉じる代わりに幅を変更します。アイコンだけを残して、いつでも利用できるクイック ナビゲーションを維持するために使用されます。これを実現するには、ドロワーの mini スロットを設定するだけです。

    <IgbNavDrawer @ref="@NavDrawerRef" Open="true" style="position: relative">
        <IgbNavDrawerHeaderItem>
            Sample Drawer
        </IgbNavDrawerHeaderItem>
        <IgbNavDrawerItem>
            <IgbIcon @ref="@HomeIcon" slot="icon" Collection="material" IconName="home" />
            <span slot="content">Home</span>
        </IgbNavDrawerItem>
        <IgbNavDrawerItem>
            <IgbIcon @ref="@SearchIcon" slot="icon" Collection="material" IconName="search" />
            <span slot="content">Search</span>
        </IgbNavDrawerItem>
        <div slot="mini">
            <IgbNavDrawerItem>
                <IgbIcon slot="icon" Collection="material" IconName="home" />
            </IgbNavDrawerItem>
            <IgbNavDrawerItem>
                <IgbIcon slot="icon" Collection="material" IconName="search" />
            </IgbNavDrawerItem>
        </div>
    </IgbNavDrawer>
    

    以下は結果です:

    Navigation Drawer コンポーネントは、basemainmini など、いくつかの CSS パーツを公開します。Navigation Drawer Item コンポーネントは、ベース、アイコン、コンテンツの 3 つの CSS パーツも公開し、スタイルを完全に制御できるようにします。

    igc-nav-drawer::part(base) {
        background: #2d313a;
    }
    
    igc-nav-drawer-item::part(base) {
        color: #fff;
    }
    
    igc-nav-drawer-item::part(base):hover {
        background-color: #3D4149;
    }
    
    igc-nav-drawer-item[active]::part(base) {
        background: #f3c03e;
        color: #2c2c2c
    }
    
    igc-nav-drawer-header-item {
        color: #f3c03e
    }
    

    その他のリソース

    API メンバー