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" />
Ignite UI for Blazor の完全な概要については、作業の開始トピックを参照してください。
Navigation Drawer 項目の追加
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>
以下は結果です:
Navbar の統合
ドロワーには任意のコンテンツを提供できますが、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 のスタイル設定
Navigation Drawer コンポーネントは、base
、main
、mini
など、いくつかの CSS パーツを公開します。Navigation Drawer Item コンポーネントは、base
、icon
、content
の 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 リファレンス
IgbButton
IgbIcon
IgbNavDrawerHeaderItem
IgbNavDrawerItem
IgbNavDrawer
IgbNavbar
IgbRadioGroup
IgbRadio