syncfusion-wpf-diagram について
WPF アプリで Syncfusion SfDiagram を使い、インタラクティブな図を作成・カスタマイズするためのスキルです。図の要素、自動レイアウト、データバインディング、保存、エクスポート、印刷を扱います。
主な機能
- 01ノード、コネクター、ポート、注釈
- 02複数の図形式に対応する自動レイアウト
- 03ドラッグ&ドロップ対応のシンボルパレット
- 04データバインディングによる図の生成
- 05XML、JSON、ストリームへのシリアライズ
- 06画像・PDF エクスポートと印刷
活用シーン
- 01フローチャート、組織図、マインドマップの作成
- 02BPMN または UML 図の作成
- 03階層データから図を生成
- 04図の状態の保存、エクスポート、印刷
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ syncfusion/ wpf-ui-components-skills --skill syncfusion-wpf-diagramインストール後、Claude Code で/syncfusion-wpf-diagramを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/annotations.mdautomatic-layouts.mdbpmn-shapes.mdcommands.mdconnectors.mddata-source.mddiagram-customization.mdexport-print.mdgetting-started.mdinteraction.mdnodes.mdperformance-constraints.mdports.mdserialization-undo-redo.mdstencil.mdswimlane.mduml-diagrams.md詳細
Syncfusion WPF Diagram(SfDiagram)の実装
Syncfusion WPF Diagram コントロール(SfDiagram)は、WPF アプリケーションでインタラクティブなフローチャート、組織図、BPMN 図、UML 図、ネットワーク図などを作成するための、豊富な機能を備えた図表作成ライブラリです。ノード、コネクタ、注釈、ポート、自動レイアウトに加え、幅広いカスタマイズオプションを提供します。
このスキルを使う場面
- WPF アプリケーションであらゆるビジュアル図表(フローチャート、組織図、マインドマップなど)を作成する
- 図表にノード、コネクタ、注釈、ポートを追加する
- BPMN 図または UML 図を実装する
- 図表の自動レイアウト(階層型、組織図、マインドマップ、フローチャート、放射状)を設定する
- ドラッグ&ドロップで図表を作成するためのシンボルパレット(ステンシル)を設定する
- データソースをバインドして図表を動的に生成する
- 図表の操作(選択、ドラッグ、サイズ変更、ズーム、キーボードショートカット)を有効にする
- 図表をエクスポートまたは印刷する
- 図表の外観(グリッド線、ルーラー、テーマ、ページ設定)をカスタマイズする
クイックスタート
1. NuGet パッケージをインストールする
Install-Package Syncfusion.SfDiagram.WPF
2. XAML に名前空間を追加する
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
3. SfDiagram を宣言する
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf" ...>
<Grid>
<syncfusion:SfDiagram x:Name="diagram">
<syncfusion:SfDiagram.Nodes>
<syncfusion:NodeCollection/>
</syncfusion:SfDiagram.Nodes>
<syncfusion:SfDiagram.Connectors>
<syncfusion:ConnectorCollection/>
</syncfusion:SfDiagram.Connectors>
</syncfusion:SfDiagram>
</Grid>
</Window>
4. コードビハインドでノードとコネクタを追加する
using Syncfusion.UI.Xaml.Diagram;
// Add nodes
var node1 = new NodeViewModel { ID = "Start", UnitWidth = 120, UnitHeight = 40,
OffsetX = 200, OffsetY = 100, Shape = this.Resources["Ellipse"] };
var node2 = new NodeViewModel { ID = "End", UnitWidth = 120, UnitHeight = 40,
OffsetX = 200, OffsetY = 250, Shape = this.Resources["Rectangle"] };
(diagram.Nodes as NodeCollection).Add(node1);
(diagram.Nodes as NodeCollection).Add(node2);
// Add connector
var connector = new ConnectorViewModel { SourceNodeID = "Start", TargetNodeID = "End" };
(diagram.Connectors as ConnectorCollection).Add(connector);
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
- アセンブリの配置と NuGet の設定
- XAML またはコードによる SfDiagram の追加
- ライセンスキーの登録
- 組み込みの図形リソースディクショナリのマージ
- 最小限のフローチャートの例を作成する
ノード
📄 参照: references/nodes.md
- ノードの定義と配置(XAML および C#)
- 組み込み図形とカスタム図形テンプレート
- ノードの外観:塗りつぶし、線、影、ツールチップ
- ノードのグループとコンテナー
- ノードの制約(ロック、選択、サイズ変更、回転)
- ノードイベント
コネクタ
📄 参照: references/connectors.md
- ノード間のコネクタの定義
- コネクタの種類:直線、直交、3 次ベジェ、円弧、2 次
- 外観:線のスタイル、矢印、破線
- コネクタのルーティングとセグメント
- コネクタの制約と操作
- 交差部分でのコネクタの分割
注釈
📄 参照: references/annotations.md
- ノードとコネクタへのテキストラベルの追加
- 注釈の配置と整列
- 外観のカスタマイズ(フォント、背景、境界線)
- 実行時の注釈の編集
- 注釈イベント
ポート
📄 参照: references/ports.md
- ノード上の接続ポートの定義
- ポートの種類と視覚的な外観
- ポートのホバー効果
- ポートの自動作成
- ポート間のコネクタの作成
操作
📄 参照: references/interaction.md
- 選択(単一選択、複数選択、種類による選択)
- ノードとコネクタのドラッグ&ドロップ
- サイズ変更、回転、反転
- ズームとパン
- キーボードショートカット
- ツールチップとユーザーハンドル
- スクロール設定、ドラッグ制限、スナップ
コマンド
📄 参照: references/commands.md
- 配置(左、右、上、下、中央)
- クリップボード操作(切り取り、コピー、貼り付け、複製)
- ノードとコネクタの削除
- コマンドによる元に戻す/やり直し
- 微調整(矢印キーでの移動)
- 回転、反転、ページに合わせる
- 間隔、サイズ、Z オーダー
- ノードの展開/折りたたみ
- カスタムコマンドマネージャー
自動レイアウト
📄 参照: references/automatic-layouts.md
- 階層ツリーレイアウト
- 組織図レイアウト
- マインドマップレイアウト
- フローチャートレイアウト
- 放射状ツリーレイアウト
- 力学的レイアウト
- レイアウトの設定(間隔、向き、余白)
BPMN 図形
📄 参照: references/bpmn-shapes.md
- BPMN アクティビティ(タスク、サブプロセス)
- BPMN イベント(開始、中間、終了)
- BPMN ゲートウェイ
- BPMN データオブジェクトとデータストア
- BPMN コネクタとテキスト注釈
- BPMN グループとシンボルパレット
UML ダイアグラム
📄 参照: references/uml-diagrams.md
- UML の図形タイプ(クラス、コンポーネント、ユースケース、アクティビティ、状態、シーケンス)
- UML シーケンス図の要素
- UML の図形と関係の設定
スイムレーン
📄 参照: references/swimlane.md
- スイムレーン図の作成
- レーンとフェーズの定義
- スイムレーンのシンボルパレット
- スイムレーンの操作とカスタマイズ
ステンシル(シンボルパレット)
📄 参照: references/stencil.md
- ドラッグ&ドロップ式のシンボルパレットの設定
- シンボルグループとカテゴリ
- シンボルのフィルタリングと検索
- カスタム図形のパレットへの追加
- ステンシルの外観
データソース
📄 参照: references/data-source.md
- フラットなデータコレクションを図にバインドする
- 親子関係のデータ
- 自己参照型の階層データ
- 動的なデータ更新
シリアル化と元に戻す/やり直し
📄 参照: references/serialization-undo-redo.md
- 図を XML として保存および読み込み
- JSON またはストリームへのシリアル化と、そこからの復元
- 元に戻す/やり直し履歴マネージャー
- カスタムの元に戻す/やり直し項目
図のカスタマイズ
📄 参照: references/diagram-customization.md
- グリッド線(表示、スタイル、スナップ)
- ルーラー(外観、測定単位)
- ページ設定(サイズ、向き、余白、背景)
- スクロール設定と自動スクロール
- テーマとスタイル
- ローカライズ
- コンテキストメニュー
- 図のリボン
- 描画ツール
- 概要コントロール
エクスポートと印刷
📄 参照: references/export-print.md
- 図を PNG、JPEG、BMP にエクスポート
- PDF へのエクスポート
- 印刷設定を指定して印刷
- 印刷前のプレビュー
パフォーマンスと制約
📄 参照: references/performance-constraints.md
- 大きな図での仮想化
- 図レベルの制約
- ノードとコネクタの制約
- パフォーマンス最適化のヒント
よくあるパターン
パターン:自動レイアウトのフローチャート
データから図を自動配置したい場合は、references/automatic-layouts.md と references/data-source.md を参照してください。
パターン:業務データから組織図を作成
親子関係を持つ従業員データをバインドし、組織レイアウトを適用します。references/data-source.md と references/automatic-layouts.md を参照してください。
パターン:BPMN プロセス図
標準化された図形を使って業務プロセスをモデリングする場合は、references/bpmn-shapes.md を参照してください。
パターン:インタラクティブな図の作成ツール
ユーザーがパレットから図形をドラッグするアプリの場合は、references/stencil.md と references/interaction.md を参照してください。
パターン:図の状態を保存/読み込み
セッションをまたいで図の状態を保持する場合は、references/serialization-undo-redo.md を参照してください。