Syncfusion Feedback

世界をリードする企業から信頼されています

Syncfusion Trusted Companies

概要

Blazor Diagramコンポーネントは、インタラクティブなダイアグラムを視覚的に作成、編集するための高速で強力なライブラリです。フローチャート、組織図、マインドマップなどの作成をサポートしています。


Syncfusion Essential Studio® Blazor Diagramを選択する理由

Blazor Diagram Automatic Layout image

自動レイアウト

定義済みレイアウトアルゴリズムに基づいてノードを自動的に配置します。

Blazor Diagram Data Binding image

シームレスなデータバインディング

データソースからのデータに基づいて作成および配置されたノードとコネクターでダイアグラムを埋めます。コードを記述することなく、いくつかのプロパティを設定するだけで、あらゆる形式のデータをダイアグラムで簡単に変換、マッピング、利用できます。

Blazor Diagram Interactive Editing image

インタラクティブな編集

Blazor Diagramでは、パンとズーム、スナップ、元に戻す・やり直し、ステンシル、サイズ変更、回転をインタラクティブに行うことができます。

Blazor Diagram Adapts To Any Resolution image

あらゆる解像度に対応

ダイアグラムは、デスクトップ、タッチスクリーン、電話向けに最適化されたデザインで、非常に応答性の高いレイアウトを備えています。iOS、Android、Windows OSを使用するすべての携帯電話でうまく機能します。

Blazor Diagram Reusable Symbols image

再利用可能なシンボルギャラリー

SymbolPaletteには、パレットのコレクションが表示されます。パレットには、ダイアグラムにドラッグ&ドロップできるノードとコネクターのセットが表示されます。

Blazor Diagram Template Shapes image

独自のテンプレートシェイプを作成

ダイアグラムページ上で同時に配置および操作できる、ノードを使用したあらゆるグラフィカルオブジェクトを視覚化します。ダイアグラムでは、さまざまな種類のノードを追加できます。

Blazor Diagram Customizable Themes image

魅力的でカスタマイズ可能なテーマ

Fluent、Tailwind CSS、Bootstrap、Material、Fabricなど、いくつかの組み込みテーマを備えた最先端のデザイン。 オンラインのTheme Studioツールを利用して、ダイアグラムのテーマを簡単にカスタマイズできます。

Blazor Diagram Global Local image

グローバリゼーションとローカリゼーション

異なるロケールのユーザーがコンポーネントを使用できるように、日付、通貨、番号付けを好みに合わせてフォーマットします。


AIダイアグラムビルダーでよりスマートな視覚化

当社のAIダイアグラムコンポーネントは、テキストを瞬時にビジュアルに変換します。テキストからダイアグラム生成機能を使用して、自然言語から直接ビジュアルを作成します。複雑なダイアグラムを素早く作成、変更、理解できます。

Blazor Diagram Text To Flowchart image


Blazor Diagramコード例

以下の Blazor C# コードで、Blazor Diagramを簡単に作成できます。また、Blazor でダイアグラム コンポーネントをレンダリングおよび構成する方法を示すBlazor Diagram の例も参照してください。

@using Syncfusion.Blazor.Diagram
@using DiagramSegments = Syncfusion.Blazor.Diagram.ConnectorSegmentType

<SfDiagramComponent Height="600px" Nodes="@NodeCollection" Connectors="@ConnectorCollection" NodeCreating="@NodeCreating" ConnectorCreating="@ConnectorCreating" />

@code
{
    int connectorCount = 0;
    // Define diagram's nodes collection
    public DiagramObjectCollection<Node> NodeCollection { get; set; } = new DiagramObjectCollection<Node>();
    // Define diagram's connector collection
    public DiagramObjectCollection<Connector> ConnectorCollection { get; set; } = new DiagramObjectCollection<Connector>();

    protected override void OnInitialized()
    {
        InitDiagramModel();
    }

    private void InitDiagramModel()
    {
        NodeCollection = new DiagramObjectCollection<Node>();
        ConnectorCollection = new DiagramObjectCollection<Connector>();
        CreateNode("Start", 50, NodeFlowShapes.Terminator, "Start");
        CreateNode("Init", 140, NodeFlowShapes.Process, "var i = 0;'");
        CreateNode("Condition", 230, NodeFlowShapes.Decision, "i < 10?");
        CreateNode("Print", 320, NodeFlowShapes.PreDefinedProcess, "print(\'Hello!!\');");
        CreateNode("Increment", 410, NodeFlowShapes.Process, "i++;");
        CreateNode("End", 500, NodeFlowShapes.Terminator, "End");
        OrthogonalSegment segment1 = new OrthogonalSegment()
            {
                Type = DiagramSegments.Orthogonal,
                Length = 30,
                Direction = Direction.Right
            };
        OrthogonalSegment segment2 = new OrthogonalSegment()
            {
                Type = DiagramSegments.Orthogonal,
                Length = 300,
                Direction = Direction.Bottom
            };
        OrthogonalSegment segment3 = new OrthogonalSegment()
            {
                Type = DiagramSegments.Orthogonal,
                Length = 30,
                Direction = Direction.Left
            };
        OrthogonalSegment segment4 = new OrthogonalSegment()
            {
                Type = DiagramSegments.Orthogonal,
                Length = 200,
                Direction = Direction.Top
            };
        CreateConnector("Start", "Init");
        CreateConnector("Init", "Condition");
        CreateConnector("Condition", "Print");
        CreateConnector("Condition", "End", "Yes", segment1, segment2);
        CreateConnector("Print", "Increment", "No");
        CreateConnector("Increment", "Condition", null, segment3, segment4);

    }
    private void CreateConnector(string sourceId, string targetId, string label = default(string), OrthogonalSegment segment1 = null, OrthogonalSegment segment2 = null)
    {
        Connector diagramConnector = new Connector()
            {
                ID = string.Format("connector{0}", ++connectorCount),
                SourceID = sourceId,
                TargetID = targetId
            };

        diagramConnector.Type = DiagramSegments.Orthogonal;
        if (segment1 != null)
        {
            diagramConnector.Segments = new DiagramObjectCollection<ConnectorSegment>() { segment1, segment2 };
        }
        if (label != default(string))
        {
            var annotation = new PathAnnotation()
                {
                    Content = label,
                    Style = new TextStyle() { Fill = "transparent" }
                };
            diagramConnector.Annotations = new DiagramObjectCollection<PathAnnotation>() { annotation };
        }

        ConnectorCollection.Add(diagramConnector);
    }

    private void NodeCreating(IDiagramObject obj)
    {
        if (obj != null && obj is Node node)
        {
            node.Width = 140;
            node.Height = 50;
            node.OffsetX = 300;
            node.Style = new ShapeStyle() { Fill = "#357BD2", StrokeColor = "white" };
        }
    }
    private void ConnectorCreating(IDiagramObject obj)
    {
        if (obj != null && obj is Connector connector)
        {
            connector.Type = DiagramSegments.Orthogonal;
            connector.TargetDecorator = new DecoratorSettings() { Shape = DecoratorShape.Arrow, Width = 10, Height = 10 };
        }
    }
    private void CreateNode(string id, double y, NodeFlowShapes shape, string label, bool positionLabel = false)
    {
        ShapeAnnotation annotation = new ShapeAnnotation()
            {
                Content = label,
                Style = new TextStyle()
                {
                    Color = "white",
                    Fill = "transparent"
                }
            };
        if (positionLabel)
        {
            annotation.Margin = new DiagramThickness() { Left = 25, Right = 25 };
        };

        Node diagramNode = new Node()
            {
                ID = id,
                OffsetY = y,
                Shape = new FlowShape() { Type = NodeShapes.Flow, Shape = shape },
                Annotations = new DiagramObjectCollection<ShapeAnnotation>() { annotation }
            };
        NodeCollection.Add(diagramNode);
    }
}

リアルタイムコラボレーション

複数のユーザーが同じダイアグラムを同時に編集し、ライブ更新を確認できるため、チームワークと効率が向上します。

  • ユーザープレゼンスのハイライト: 各要素は、現在誰が操作しているかを示します。
  • 競合の処理: 複数のユーザーが同じ要素を編集した場合、最初のユーザーの変更が適用され、他のユーザーには競合が通知されます。

Blazor Diagramでのリアルタイムコラボレーション。


Blazor Diagramコンポーネントで利用可能な組み込みのフローチャートシェイプで作成されたフローチャートダイアグラム。

フローチャート

Blazor Diagramコンポーネントは、すべての標準的なフローチャート図形を既製のオブジェクトとして提供しているため、単一の呼び出しでダイアグラムキャンバスに簡単に追加できます。


組織図

組織図において、親ノードと子ノードの位置を自動的に配置するように特別に設計された、組み込みの自動レイアウトアルゴリズムです。

Blazor Diagramコンポーネントの組織図。


Blazor Diagramのマインドマップ。

マインドマップ

マインドマップダイアグラム用に設計されたもう1つの組み込み自動レイアウトアルゴリズムで、ユーザーはどのノードを中央に配置し、どのノードをダイアグラムサーフェスの周囲に配置するかを指定できます。


強制指向型レイアウト

ノードを、重なりやエッジの交差を避けるための整然としたレイアウトで、引力と反発力を使用して自動的に配置します。

Blazor Diagramコンポーネントの強制指向型レイアウト。


Blazor Diagramコンポーネントのスイムレーン。

スイムレーン

Blazorダイアグラムはスイムレーン図形をサポートしており、スイムレーン図においてビジネスプロセス内の様々なコンポーネント、活動、責任を表す視覚的要素です。


BPMNエディター

Blazorダイアグラムには、標準的なBPMN(ビジネスプロセスモデリング記法)図形がすべて含まれており、BPMN図内でビジネスプロセスを効果的に視覚化するために不可欠なグラフィカル要素です。

Blazor DiagramのBPMNエディター。


ノード

ノードを使用してあらゆるグラフィカルオブジェクトを視覚化し、Blazorダイアグラムページ上で同時に配置および操作できます。ノードでは、次のことができます。

  • 多くの定義済み標準シェイプを使用する。
  • カスタムシェイプを簡単に作成して追加する。
  • ノードの外観を完全にカスタマイズする。
  • ノードUIテンプレートを設計し、複数のノードで再利用する。

コネクター

コネクターは、2つのノード間の関係を表します。コネクターの種類、ブリッジングなどの主要な機能を以下に示します。

Blazor Diagramコンポーネントで利用できるさまざまな種類のコネクター。

種類

Blazor Diagramコンポーネントは、直線、直交、ポリライン、および曲線コネクタータイプを提供します。ダイアグラムのタイプや接続されたノード間の関係に基づいて、これらの中から任意のものを選択します。

Blazor Diagramコンポーネントのコネクタールーティング動作。

ルーティング

直交コネクターは、隣接するノードとの重複を避けるために、最短かつ最も効率的な経路をたどります。

Blazor Diagramコンポーネントのコネクターラインジャンプ動作。

ブリッジングまたはラインジャンプ

ブリッジング(ラインジャンプ)を使用してコネクターの経路を示し、混み合った図でコネクターが重なっている場所をより簡単に確認できます。

Blazor Diagramコンポーネントの定義済み矢印は、ダイアグラムのフロー方向を示します。

矢印

定義済みタイプの矢印を使用して、フローチャートのフロー方向を示したり、必要に応じてカスタムの矢印を作成したりできます。

Blazor Diagramコンポーネントのコネクターの外観のカスタマイズ。

外観

ノードと同様に、コネクターの外観もカスタマイズできます。Blazor Diagramコンポーネントは、コネクターの色、太さ、破線と点線の外観、丸みを帯びた角、さらにはデコレーターをカスタマイズするための豊富なプロパティセットを提供します。


ポート(接続点)

ノード上の特定の場所にコネクターを接続するために、さまざまな形状のポートまたは接続点を使用し、これらのポートの表示と外観をカスタマイズできます。

Blazor Diagramコンポーネントのポートを使用して、ノードの特定の場所に接続します。


ラベル

ノード、コネクター、およびスイムレーンにテキストまたはラベルを追加することで、追加情報を表示できます。

Blazor Diagramライブラリでは、ラベルを使用してノードやコネクターに付加情報を表示できます。

編集

実行時にテキストを追加および編集し、編集不可の場合は読み取り専用としてマークします。

Blazor Diagramコンポーネントのラベル機能を使用して、ノードやコネクターに複数のラベルを追加します。

複数ラベル

任意の数のラベルを追加し、それぞれを個別に配置できます。

Blazor Diagramコンポーネントでノードの内部または外部にラベルを配置します。

配置

ラベルは高度な配置オプションを含んでいます。ノードの内側または外側、またはコネクターの始点または終点に配置できます。ノードまたはコネクターが移動すると、ラベルは自動的に配置されます。


インタラクティブ機能

実行時にBlazorダイアグラムの編集体験を向上させるために、インタラクティブ機能を使用します。さらに、マウス、タッチスクリーン、またはキーボードインターフェースを使用してBlazorダイアグラムを簡単に編集できます。

Blazor Diagramライブラリのハンドラーを使用して、ノードまたはコネクターを選択してドラッグします。

選択してドラッグ

1つまたは複数のノードとコネクターを選択し、選択したオブジェクトをドラッグして、サムまたはハンドラーを使用して編集します。

Blazor Diagramライブラリのハンドラーを使用してノードを選択してサイズ変更します。

サイズ変更

ノードを8つの異なる方向にサイズ変更し、その形状を維持するためにアスペクト比をロックします。さらに、複数のオブジェクトを同時にサイズ変更することもできます。

Blazor Diagramライブラリのハンドラーを使用してノードを選択して回転します。

回転

選択したノードを0から360度まで回転します。

Blazor Diagramライブラリの履歴マネージャー機能を使用して、最近の変更を元に戻す・やり直します。

元に戻す・やり直し

誤って編集しても心配ありません。元に戻す・やり直しコマンドを使用すると、最近の変更を簡単に修正できます。

Blazor Diagramライブラリのクリップボード機能を使用して、ダイアグラム内の選択したオブジェクトをカット、コピー、貼り付けします。

クリップボード

Blazorダイアグラム内およびダイアグラム間で選択したオブジェクトをカット、コピー、貼り付け、または複製します。

Blazor Diagramの Zオーダー機能を使用して、オブジェクトをダイアグラムの前面または背面に移動します。

Zオーダー

複数のオブジェクトが重なっている場合、Zオーダーはどのオブジェクトが上にあるか、どのオブジェクトが下にあるかを決定します。

Blazor Diagramライブラリを使用して、ノードとコネクターを最も近いグリッド線またはオブジェクトにスナップして位置合わせします。

スナップ

ドラッグ中に、ノード、コネクター、および注釈を最も近いグリッド線またはオブジェクトにスナップして、正確に位置合わせします。

Blazor Diagramライブラリで複数のノードをグループノードに結合します。

グルーピング

複数のノードをグループに結合し、それらを単一のオブジェクトとして操作できます。ネストされたグループも可能です。

Blazor Diagramライブラリでセレクターの近くにクイックコマンドをボタンとして表示できます。

クイックコマンド

削除、接続、複製などのよく使用されるコマンドは、セレクターの近くにボタンとして表示できます。これにより、ユーザーはツールボックスで正しいボタンを探すことなく、これらの操作をすばやく実行できます。


自動レイアウト

Blazor Diagramコントロールは、定義済みのレイアウトロジックに基づいてノードを配置する自動レイアウトアルゴリズムを提供します。組織図レイアウト、階層ツリーレイアウト、複雑な階層ツリーレイアウト、マインドマップレイアウト、放射状ツリーレイアウトを組み込みでサポートしています。


Blazor Diagramライブラリのシンボルパレット機能を使用して、シンボルパレット内で再利用可能なノードをホストします。

シンボルパレット

シンボルパレットには、ステンシル、再利用可能なシンボル、ノードのギャラリーが含まれており、これらをBlazorダイアグラムの表面にドラッグ&ドロップできます。


全体パネル

概要パネルは、大きなダイアグラムを探索する際のナビゲーション体験を向上させます。これにより、完全なダイアグラムページの小さなプレビューが表示され、ユーザーはその中でズームやパンを行うことができます。

Blazor Diagram Overview image


定規

定規

定規は、正確な測定のために水平方向および垂直方向のガイドを提供し、ダイアグラムページの原点から図形やオブジェクトを配置、サイズ指定、および位置合わせする際に精度を確保します。また、定規の表示と外観をカスタマイズすることもできます。


描画ツール

内蔵ノードをすべてインタラクティブに描画し、描画領域をクリックしてドラッグするだけでコネクターを使用して接続できます。

Blazor Diagramライブラリを使用して、ノードとコネクターをインタラクティブに描画します。


Blazor Diagramコンポーネントでのズームイン・ズームアウト。

ズームとパンツール

ズームイン・ズームアウトすることで、大きなダイアグラムを詳細に表示したり、広範囲を俯瞰したりできます。また、Blazorダイアグラムをパンすることで、ダイアグラムのある領域から別の領域へ移動できます。


エクスポート

ダイアグラムは、PNG、JPEG、PDF、SVGなどのさまざまな画像形式でエクスポートできます。

Blazor Diagramを使用して、ダイアグラムをさまざまな画像形式にエクスポートします。


Blazor Diagramを使用してブラウザからダイアグラムを印刷します。

印刷

ブラウザから直接ダイアグラムを印刷します。ユーザーは、ページサイズ、向き、余白をカスタマイズしたり、ダイアグラムを単一ページに収めることもできます。


シリアライゼーション

Blazorダイアグラムの状態をJSON形式で保存し、後でシリアライザーを使用してさらに編集するために読み込みます。

Blazor Diagramコンポーネントを使用して、ダイアグラムをJSON形式にシリアライズすることで保存および読み込みます。


Blazor Diagramを使用してブラウザからダイアグラムを印刷します。

印刷

ブラウザからダイアグラムを印刷します。ユーザーは、ページサイズ、向き、余白をカスタマイズしたり、ダイアグラムを単一ページに収めることもできます。


その他の機能

これまで挙げたすべての機能に加えて、ダイアグラム作成体験を向上させる多くの機能があります。

Blazor Diagramコンポーネントのグリッド線を使用してオブジェクトを配置します。

グリッド線

グリッド線は、オブジェクトを配置する際のガイドとなります。

Blazor Diagramコンポーネントを使用して、描画サーフェスにページのような外観を定義します。

ページレイアウト

ページサイズ、向き、余白を調整することで、描画サーフェスにページのような外観を作成します。

Blazor Diagramのツールチップを使用して、ノードに関する追加情報を表示できます。

ツールチップ

ノードに関する追加情報を提供するためにツールチップを使用します。

Blazor Diagramのコンテキストメニュー機能を使用して、よく使うコマンドをマッピングします。

コンテキストメニュー

よく使用するコマンドをコンテキストメニューに簡単にマッピングします。


その他の機能

Blazor Diagramのキーボードナビゲーション。

キーボードナビゲーション

Blazor Diagramコントロールは、すべてのセルがキーボードでアクセスできるように設計されています。並べ替え、選択、編集などの主要な機能は、マウス操作なしでキーボードコマンドのみで実行できます。これにより、このコントロールを使用しての高いアクセシビリティを備えたアプリケーション作成に貢献します。

Blazor Diagramの開発者向けAPI。

開発者に優しいAPI

開発者は、組み込みの開発者向けAPIを通じてイベントカレンダーのUIと動作を完全に制御でき、複雑なダイアグラム機能も簡単にカスタマイズできます。






その他のサポートされているフレームワーク

Diagramは、React、Angular、JavaScript、およびVueフレームワークで利用可能です。次のリンクからプラットフォーム固有のオプションをご覧ください。

サポートされているブラウザ

Blazor Diagramは、Chrome、Firefox、Edge、Safari、Operaを含むすべての最新Webブラウザでうまく動作します。

Blazor Diagramでサポートされているブラウザ。



当社のコンポーネントがどのように美しく効率的なアプリに変換されるかをご覧ください。

Diagram Builder

Diagram Builderは、フローチャート、プロセス図などを作成するために使用されるWebアプリケーションです。

webp-image
Demoを見る Githubでコード

マインドマップメーカー

マインドマップは、スパイダー図の一種で、中心となる概念を中心に情報を視覚的に整理するために使用されます。これにより、情報のグループ間の関係を示すのに役立ちます。

webp-image
Demoを見る Githubでコード

組織図作成ツール

組織図は、企業の内部構造を視覚的に伝える図であり、組織内の個人の役割、責任、および関係を詳細に示します。

webp-image
Demoを見る Githubでコード

BPMNエディター

ビジネスプロセスモデルと表記法(BPMN)図は、複雑なビジネスプロセスのフローチャートのようなもので、組織や業界間でプロセス情報を共有するために使用されます。

webp-image
Demoを見る Githubでコード

ロジック回路デザイナー

さまざまなロジックゲート、入力および出力コンポーネントを使用して、デジタルロジック回路を設計およびシミュレートし、その動作をよりよく視覚化および理解し、設計を他のユーザーと共有できます。

webp-image
Demoを見る Githubでコード

間取りプランナー

壁、ドア、窓、家具、その他のオブジェクトの配置を含め、フロアまたは建物のレイアウトを設計および計画します。

webp-image
Demoを見る Githubでコード

ブレイザーコンポーネント – 145以上のUIとDataVizコンポーネント

よくある質問

  • インタラクティブなダイアグラムを視覚化、作成、編集できます。
  • 超高速なロード時間、豊富なUIインタラクション、キーボードナビゲーション。
  • 最適なパフォーマンスで幅広いノードをロードします。

  • フローチャートダイアグラムのサポート、多くの組み込み図形、柔軟なデータバインディング

  • 組織図マインドマップ放射状ツリー、階層ツリーなどのレイアウトでダイアグラムコンポーネントを簡単に配置できます。

  • ソフトウェアと対話するための機能豊富なUIを提供する、市場で最高のBlazor Diagramライブラリの1つ。
  • 簡単な設定とAPI。
  • すべての最新ブラウザをサポート。
  • モバイルタッチフレンドリーでレスポンシブ。
  • 学習と開始に役立つ豊富なデモビデオ

Blazor Diagramは単体では販売していません。 Syncfusionチームライセンスの一部としてのみ購入可能です。このライセンスには、Blazor Diagramを含む1,600以上のコンポーネントとフレームワークが含まれています。チームライセンスの価格は、開発者5人の場合、月額395ドルからで、サブスクリプションの有効期限までサポートとアップデートが含まれます。さらに、現在実施中のプロモーションによっては、割引料金を提供できる場合があります。追加の割引が適用されるかどうかについては、今すぐ製品スペシャリストまでお問い合わせください。

Blazor Diagramのレンダリングと設定方法を示すBlazor Diagramのデモをご覧いただけます。

いいえ、ウェブ、モバイル、デスクトップ向けの1,600+コンポーネントとフレームワーク(Blazor Diagramを含む)は個別に販売されていません。これらはチームライセンスの一部としてのみ利用可能です。しかし、競合他社がDiagramコンポーネント単独で請求する料金よりわずかに高い程度で、製品を競争力のある価格設定にしています。また、当社の経験上、お客様は通常、当社の製品の1つから使い始め、すぐに複数の製品に拡大するため、開発者5人のチームに対して月額395ドルから始まるサブスクリプション料金ですべての1,600+コンポーネントとフレームワークを提供するのが最善だと考えました。さらに、現在実施中のプロモーションによっては割引も可能です。追加割引の対象となるかについては、今すぐ製品スペシャリストにお問い合わせください。

いいえ、これは商用製品であり、有料ライセンスが必要です。ただし、年間総収入が100万米ドル未満で、開発者数が5人以下の企業および個人に対しては、無料のコミュニティライセンスも利用できます。

当社の総合的なはじめにドキュメントをご利用いただくことをお勧めします。

お客様は私たちを愛しています

優れたツール群と充実したサポートチームにより、Syncfusion® はお客様の開発時間を短縮します。
お客様の体験談の一部をご紹介します。

実際の成功事例を見る

世界中の開発者が複雑なプロジェクトを簡素化し、納期を短縮するために Syncfusion の Essential Studio を信頼しています。豊富な UI コントロール ライブラリ、強力な SDK、信頼できるサポートにより、Essential Studio はチームがエンタープライズ対応のアプリケーションを自信を持って構築できるよう支援します。

ケーススタディを探る


世界中のユーザーからの評価

無料評価バージョンをダウンロードしてアプリケーションを変革しましょう
無料トライアルのダウンロード クレジットカード不要。

受賞歴

偉大さ—自分で言うのではなく、他の人が認めるからこそ意味があります。 シンクフュージョンは以下の賞をいただきました。

Blazor Diagramのチュートリアルとブログでの最近のアクティビティ

Blazor Diagramのチュートリアルビデオとブログ記事は、このBlazorコンポーネントを使用して最初のアプリを構築するのに役立ちます。これらは問題解決の戦略を提供し、機能と機能性を説明し、新機能のリリースを発表し、ベストプラクティスを説明し、例のシナリオを紹介します。Blazor Diagramの最新情報をブログとチュートリアルビデオチャンネルでご覧ください。

Up arrow icon