[ASP.NET Blazor Server][MudBlazor] MudBlazorの使い方7

実際のアプリ開発で「これがないと始まらない!」「あると一気にプロっぽくなる!」というリッチなUIを4つのジャンルでご紹介します。


1. 画面の移動メニューを作る(MudNavMenu / MudNavLink)

前回、サイドバー(MudDrawer)の枠組みを作りましたが、その中に配置する「メニューのリンク」を作るための専用コンポーネントです。

<MudNavMenu>
    <MudNavLink Href="/" Icon="@Icons.Material.Filled.Home">ホーム</MudNavLink>
    
    <MudNavGroup Title="設定" Icon="@Icons.Material.Filled.Settings" Expanded="true">
        <MudNavLink Href="/settings/users" Icon="@Icons.Material.Filled.People">ユーザー管理</MudNavLink>
        <MudNavLink Href="/settings/security" Icon="@Icons.Material.Filled.Security">セキュリティ</MudNavLink>
    </MudNavGroup>
</MudNavMenu>
  • ここが便利: Href="/..." に移動先のURLを書くだけで、Blazorの画面遷移機能と完璧に連携します。MudNavGroup を使えば、クリックして「パカッ」と開く階層メニューも一瞬で作れます。

2. 処理中の「お待ちください」を表示する(MudProgressCircular / Linear)

データベースから情報を取ってくるときなど、画面がフリーズしたように見せないために「くるくる回るアイコン」や「進捗バー」を出してあげるのはUIの基本です。

<MudProgressCircular Color="Color.Primary" Indeterminate="true" />

<MudProgressLinear Color="Color.Secondary" Indeterminate="true" Class="my-7" />

@code {
    // ※ Indeterminate="true" とすると、終わりのない「処理中」のアニメーションがずっと動きます。
    // 逆に、ファイルのダウンロードなど「何%終わったか」が分かる場合は、Value="50" のように数値を渡すこともできます。
}

3. アプリの見た目を華やかにする(MudAvatar / MudBadge)

SNSやチャットアプリでよく見る「ユーザーのアイコン」や、未読メッセージの「赤い丸(バッジ)」を表現するコンポーネントです。

<MudBadge Content="3" Color="Color.Error" Overlap="true">
    <MudIcon Icon="@Icons.Material.Filled.Email" Color="Color.Default" />
</MudBadge>

<MudAvatar Color="Color.Primary" Variant="Variant.Outlined">
    山田
</MudAvatar>
<MudAvatar Image="https://example.com/profile.jpg" />
  • ここが便利: 画像のURLを渡すだけで、自動的に綺麗な丸型に切り抜いてくれます。画像がない場合は、頭文字(「山田」など)を入れるだけでそれっぽいアイコンが完成します。

4. 賢い検索機能付き入力欄(MudAutocomplete)

先ほど「ドロップダウン(MudSelect)」を紹介しましたが、もし選択肢が1000個(例えば全国の市区町村など)あったら、スクロールして探すのは不可能です。 そんなときに活躍するのが、入力した文字に合わせて候補を絞り込んでくれる MudAutocomplete です。

<MudAutocomplete T="string" Label="都道府県を検索" 
                 @bind-Value="SelectedPrefecture" 
                 SearchFunc="@SearchPrefectures" />

<MudText>選択中: @SelectedPrefecture</MudText>

@code {
    private string SelectedPrefecture;
    private string[] prefectures = { "北海道", "青森県", "岩手県", "東京都", "大阪府" }; // 本来は47都道府県

    // 入力された文字(value)を受け取って、候補のリストを返すメソッド
    private async Task<IEnumerable<string>> SearchPrefectures(string value, CancellationToken token)
    {
        // もし何も入力されていなければ、最初の5件だけ見せる
        if (string.IsNullOrEmpty(value))
            return prefectures.Take(5);

        // 入力された文字が含まれている都道府県だけを抽出して返す
        return prefectures.Where(x => x.Contains(value));
    }
}
  • ここが便利: Google検索のサジェスト機能のような、非常に高度な仕組みをC#の簡単なフィルター処理(Where など)を書くだけで実装できます。業務アプリでは必須級のコンポーネントです。

いかがでしょうか?これで、MudBlazorが提供している主要な機能群(レイアウト、入力、表示、通知、ナビゲーション、装飾、高度な入力)のカタログを一通りめくることができました!

ここまで体系的に機能を知っておけば、いざ自分のアプリを作るときに「あ、あの機能はあのコンポーネントを使えば実現できるな」と頭の中で設計図が描けるようになります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする