mcpField
S
syncfusion-blazor-dashboard-layout

syncfusion-blazor-dashboard-layout

github.com/syncfusionデザイン・UI4345 回インストール1 週間前に更新
リポジトリ

syncfusion-blazor-dashboard-layout について

Syncfusion Blazor 開発者向けに、SfDashboardLayout を使ったインタラクティブなグリッド型ダッシュボードの実装を解説します。パネルの移動やサイズ変更、レスポンシブ表示、状態の保存を扱います。

主な機能

  1. 01グリッド上のパネル配置とサイズ制約
  2. 02衝突処理を伴うドラッグ&ドロップ
  3. 03パネルのサイズ変更とフローティング
  4. 04ブレークポイントによるレスポンシブ対応
  5. 05localStorage による状態保存
  6. 06パネルテンプレートとスタイルのカスタマイズ

活用シーン

  1. 01並べ替え可能な分析ダッシュボードの構築
  2. 02管理画面のカスタムレイアウト保存
  3. 03モバイル対応のマルチパネルワークスペース作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/syncfusion/blazor-ui-components-skills --skill syncfusion-blazor-dashboard-layout

インストール後、Claude Code で/syncfusion-blazor-dashboard-layoutを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
advanced-scenarios.md
api-reference.md
drag-drop-functionality.md
getting-started.md
grid-configuration-styling.md
panel-positioning-sizing.md
panel-templates-headers.md
resizing-floating-panels.md
responsive-adaptive-design.md
state-persistence.md

詳細

Syncfusion Blazor でのダッシュボードレイアウトの実装

Syncfusion Blazor Dashboard Layout コンポーネントは、レスポンシブでインタラクティブなダッシュボードを構築するための包括的なソリューションを提供します。このスキルでは、ドラッグ&ドロップ、サイズ変更、状態の永続化、画面サイズへの適応などの高度な機能を備えた、柔軟なパネルベースのレイアウトの作成方法を説明します。

このスキルを使用する場面

次のような場合に、このスキルを使用してください。

  • ダッシュボードやグリッドベースのパネルレイアウトを作成する
  • ドラッグ&ドロップでユーザーがパネルを並べ替えられるようにする
  • サイズ制約を設けてパネルのサイズを変更できるようにする
  • 画面サイズに応じて適応するレスポンシブレイアウトを構築する
  • ユーザーのレイアウト設定を保存および復元する
  • ヘッダーや動的コンテンツを含む複雑なマルチパネル表示を作成する
  • パネルのスタイルや外観をカスタマイズする
  • 動的なシナリオでパネルの重なりを防止する

コンポーネントの概要

SfDashboardLayout は、パネルをサイズ変更可能かつドラッグ可能なコンテナーとして扱い、設定可能なグリッド上に配置するグリッドベースのダッシュボードを作成します。主な機能は次のとおりです。

  • グリッドベースの配置。Row および Column プロパティを使用します
  • 柔軟なサイズ設定。セル単位で幅(SizeX)と高さ(SizeY)を指定します
  • サイズ制約。MinSizeX、MaxSizeX、MinSizeY、MaxSizeY プロパティを使用します
  • ドラッグ&ドロップ。衝突の処理とパネルの自動移動に対応します
  • サイズ変更。複数の方向に対応した、カスタマイズ可能なサイズ変更ハンドルを使用します
  • フローティングパネル。空きスペースを埋めるように自動的に上へ移動します
  • 状態の永続化。localStorage に保存し、プログラムから保存、読み込み、リセットできます
  • テンプレート。ヘッダーと動的コンテンツに使用できます
  • レスポンシブデザイン。モバイル向けに調整するメディアクエリのブレークポイントに対応します
  • セルベースのグリッド。列数、セルの縦横比、間隔を設定できます

ドキュメントとナビゲーションガイド

はじめに 📄 references/getting-started.md

  • WebAssembly アプリおよびサーバーアプリでのダッシュボードレイアウトの設定
  • NuGet パッケージのインストール(Syncfusion.Blazor.Layouts、Syncfusion.Blazor.Themes)
  • 名前空間と Syncfusion サービスの設定
  • スタイルシートとスクリプトリソースの追加
  • 基本パネルを使った最初のダッシュボードの作成

コアレイアウトの設定 📄 references/panel-positioning-sizing.md

  • パネルの行と列の位置指定
  • SizeX および SizeY によるパネル寸法の設定
  • 最小/最大サイズの制約(MinSizeX、MaxSizeX、MinSizeY、MaxSizeY)
  • パネル ID の管理と一意な識別
  • セルベースのグリッドシステムについて

インタラクティブ機能 📄 references/drag-drop-functionality.md

  • ドラッグアンドドロップによる並べ替えの有効化
  • 衝突の自動検出とパネルの移動
  • DraggableHandle プロパティによるドラッグハンドルのカスタマイズ
  • ドラッグハンドルの対象指定に CSS セレクターを使用
  • ドラッグ操作中のプレースホルダー表示

📄 references/resizing-floating-panels.md

  • AllowResizing プロパティによるパネルのサイズ変更の有効化
  • ResizableHandles プロパティによるサイズ変更方向のカスタマイズ
  • AllowFloating によるフローティングパネルで空きスペースを活用
  • フローティング動作とパネルの自動上方移動

グリッドの設定とスタイル 📄 references/grid-configuration-styling.md

  • Columns プロパティによるグリッドの設定
  • CellAspectRatio プロパティによるセルの縦横比
  • CellSpacing プロパティによるセル間隔(行と列の間隔)
  • ShowGridLines プロパティによるグリッドの表示
  • パネルのヘッダー、コンテンツ、背景の CSS カスタマイズ
  • CSS クラス:.e-panel-header、.e-panel-content、.e-resize

レスポンシブデザインとアダプティブデザイン 📄 references/responsive-adaptive-design.md

  • さまざまな画面サイズに対応する組み込みのレスポンシブサポート
  • カスタムブレークポイント用の MediaQuery プロパティ
  • 低解像度時の自動スタッキングレイアウト(既定値は 600px)
  • モバイルフレンドリーな設定
  • 手動設定なしでのレスポンシブ動作

パネルのテンプレートとヘッダー 📄 references/panel-templates-headers.md

  • パネルのタイトルとヘッダー用の HeaderTemplate
  • パネルのメインコンテンツ用の ContentTemplate
  • カスタムスタイル用の CssClass プロパティ
  • パネル内での HTML とコンポーネントのレンダリング
  • 空のスペースのレンダリング防止

状態管理と永続化 📄 references/state-persistence.md

  • EnablePersistence プロパティによる永続化の有効化
  • 自動保存/復元のための localStorage 連携
  • 現在の状態を文字列として取得する GetPersistDataAsync
  • 保存した状態を復元する SetPersistDataAsync
  • 保存した状態を消去する ResetPersistDataAsync
  • 永続化に必要なコンポーネント ID

API リファレンス 📄 references/api-reference.md

  • SfDashboardLayout コンポーネント API の完全なドキュメント
  • 型、既定値、受け入れ可能な値を含む全 14 個のプロパティ
  • パラメーター、戻り値の型、説明を含む全 11 個のメソッド
  • 引数の型と使用例を含む全 8 個のイベント
  • DashboardLayoutPanel コンポーネントのプロパティ(全 17 個)
  • プログラムによるパネルデータ設定用の PanelModel クラスのプロパティ
  • 完全な例を含むイベント引数クラス
  • 8 つの方向値すべてを含む ResizableHandle 列挙型
  • すべてのプロパティとメソッドの動作するコード例
  • 関連ドキュメントへの相互参照

高度なシナリオとトラブルシューティング 📄 references/advanced-scenarios.md

  • 動的なレンダリングにおいて一意な ID を使ってパネルの重なりを防止
  • すべてのパネルを同じ位置に配置する設定
  • 複雑なレイアウトのパフォーマンス最適化
  • 複雑なマルチパネル表示パターン
  • よくある問題と特殊なケースのトラブルシューティング

クイックスタートの例

@using Syncfusion.Blazor.Layouts

<SfDashboardLayout CellSpacing="@(new double[]{10, 10})" Columns="5">
    <DashboardLayoutPanels>
        <DashboardLayoutPanel>
            <HeaderTemplate><div>Panel 1</div></HeaderTemplate>
            <ContentTemplate><div>Your content here</div></ContentTemplate>
        </DashboardLayoutPanel>
        <DashboardLayoutPanel SizeX=2 SizeY=2 Column=1>
            <HeaderTemplate><div>Panel 2</div></HeaderTemplate>
            <ContentTemplate><div>Your content here</div></ContentTemplate>
        </DashboardLayoutPanel>
        <DashboardLayoutPanel SizeY=2 Column=3>
            <HeaderTemplate><div>Panel 3</div></HeaderTemplate>
            <ContentTemplate><div>Your content here</div></ContentTemplate>
        </DashboardLayoutPanel>
    </DashboardLayoutPanels>
</SfDashboardLayout>

<style>
    .e-panel-header {
        background-color: rgba(0, 0, 0, .1);
        text-align: center;
    }
    .e-panel-content {
        text-align: center;
        margin-top: 10px;
    }
</style>

一般的なパターン

基本的な3パネルダッシュボード

<SfDashboardLayout CellSpacing="@(new double[]{10, 10})" Columns="6">
    <DashboardLayoutPanels>
        <DashboardLayoutPanel SizeX=2>
            <HeaderTemplate><div>Metrics</div></HeaderTemplate>
            <ContentTemplate><div>250,000</div></ContentTemplate>
        </DashboardLayoutPanel>
        <DashboardLayoutPanel SizeX=2 Column=2>
            <HeaderTemplate><div>Users</div></HeaderTemplate>
            <ContentTemplate><div>45,200</div></ContentTemplate>
        </DashboardLayoutPanel>
        <DashboardLayoutPanel SizeX=2 Column=4>
            <HeaderTemplate><div>Revenue</div></HeaderTemplate>
            <ContentTemplate><div>$125,000</div></ContentTemplate>
        </DashboardLayoutPanel>
    </DashboardLayoutPanels>
</SfDashboardLayout>

ドラッグ&ドロップとサイズ変更に対応

<SfDashboardLayout CellSpacing="@(new double[]{10, 10})" 
    Columns="6" 
    AllowDragging="true" 
    AllowResizing="true">
    
</SfDashboardLayout>

モバイル向けレスポンシブレイアウト

<SfDashboardLayout CellSpacing="@(new double[]{10, 10})" 
    Columns="5" 
    MediaQuery="max-width:600px">
    
</SfDashboardLayout>

状態の永続化パターン

<SfDashboardLayout ID="dashboard" EnablePersistence="true" CellSpacing="@(new double[]{10, 10})">
    
</SfDashboardLayout>

主なプロパティのリファレンス

プロパティ目的一般的な値
Columns1行あたりのグリッドセル数4, 5, 6, 12
Rowパネルの垂直位置(0始まり)0, 1, 2, ...
Columnパネルの水平位置(0始まり)0, 1, 2, ...
SizeXセル単位でのパネル幅1, 2, 3, ...
SizeYセル単位でのパネル高1, 2, 3, ...
MinSizeX/MinSizeY最小サイズの制約1, 2, ...
MaxSizeX/MaxSizeY最大サイズの制約null(無制限)または特定の値
CellSpacingパネル間の間隔(行、列)[10, 10], [20, 20]
CellAspectRatio高さと幅の比率1, 2, 0.5
AllowDraggingパネルの配置変更を有効化true, false
AllowResizingパネルのサイズ変更を有効化true, false
AllowFloating空きスペースを自動的に埋めるtrue, false
DraggableHandleドラッグ領域のCSSセレクター".e-panel-header"
ResizableHandlesサイズ変更の方向"e"(東)、"south-east"など
MediaQueryモバイル向けブレークポイント"max-width:600px"
EnablePersistence状態をlocalStorageに保存true, false
ID一意のコンポーネントID(永続化に必要)"dashboard", "layout1"

ユースケースの例

データ分析ダッシュボード ダッシュボードグリッドにチャート、グリッド、指標パネルを配置します。ユーザーが重要な指標に集中できるよう、サイズ変更を有効にします。

管理コントロールパネル 複数のSyncfusionコンポーネント(グリッド、チャート、フォーム)をパネル内に組み合わせます。レイアウトを永続化して、管理者の設定を記憶します。

SEOモニタリングダッシュボード ダッシュボードグリッドを使って、分析指標とチャートを表示します。パネルの移動に合わせてスペースを自動的に最適化できるよう、フローティングパネルを使用します。

パーソナルワークスペース ドラッグ&ドロップ、サイズ変更、永続化を使って、ユーザーがレイアウトを自由にカスタマイズし、理想的なワークスペースを作成できるようにします。

モバイル向けレスポンシブダッシュボード デスクトップ向けに設計し、MediaQueryのブレークポイントを使って、モバイルでは1列に積み重ねたレイアウトに自動的に適応させます。

コメント