mcpField
S
syncfusion-wpf-menu

syncfusion-wpf-menu

github.com/syncfusion開発5159 回インストール1 週間前に更新
リポジトリ

syncfusion-wpf-menu について

WPF で Syncfusion MenuAdv を使ったメニューを構築するためのスキルです。階層項目、データバインディング、MVVM コマンドに加え、外観や操作方法の設定も扱います。

主な機能

  1. 01階層メニュー項目の作成
  2. 02階層データコレクションのバインド
  3. 03アイコンとショートカット表示の設定
  4. 04チェック項目とラジオ項目の追加
  5. 05ICommand コマンドのバインド
  6. 06向きとサブメニュー動作の設定

活用シーン

  1. 01File や Edit などのアプリメニュー作成
  2. 02データソースからのメニュー生成
  3. 03MVVM コマンドによるメニュー処理

インストール

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

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-menu

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

同梱ファイル

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

references/
appearance.md
commands.md
data-binding.md
getting-started.md
menu-item-features.md
orientation-and-expand-mode.md

詳細

MenuAdv(WPF)の実装

このスキルを使用するタイミング

次のようなニーズがある場合に、このスキルを使用してください。

  • 入れ子になったサブメニューを含むアプリケーションのメニューバー(ファイル、編集、表示など)を作成する
  • メニュー項目にアイコン、キーボードショートカットのラベル、区切り線を追加する
  • チェック可能なメニュー項目(チェックボックスまたはラジオボタン形式)を作成する
  • ItemsSource を使用して階層データコレクションをメニューにバインドする
  • メニュー項目を ICommand の実装に接続する(MVVM パターン)
  • メニューの横向きと縦向きの表示を切り替える
  • サブメニューの開き方(クリックまたはマウスホバー)を制御する

コンポーネントの概要

MenuAdv                               (root menu bar container)
├── MenuItemAdv  (×N)                 (top-level or nested item)
│   ├── Header                        — display text
│   ├── Icon                          — image/UIElement on left
│   ├── InputGestureText              — shortcut label (e.g. "Ctrl+N")
│   ├── IsCheckable / CheckIconType   — checkbox or radio button mode
│   ├── Command / CommandParameter    — ICommand binding
│   └── MenuItemAdv  (×N)            (nested submenu items)
└── MenuItemSeparator                 (horizontal divider line)

アセンブリ: Syncfusion.Shared.WPF
名前空間: Syncfusion.Windows.Shared
XAML スキーマ: http://schemas.syncfusion.com/wpf


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

はじめに

📄 参照: references/getting-started.md

  • アセンブリ参照と NuGet
  • XAML 名前空間の宣言
  • XAML での MenuItemAdv の宣言的なネスト
  • C# コードビハインドでの作成
  • 項目へのアイコンの設定
  • SfSkinManager によるテーマ
データバインディング

📄 参照: references/data-binding.md

  • ItemsSource を介した ObservableCollection のバインド
  • SubItems 階層を含むモデルと ViewModel
  • HierarchicalDataTemplate の設定
  • XmlDataProvider と XPath を使用した XML からのバインド
メニュー項目の機能

📄 参照: references/menu-item-features.md

  • MenuItemAdv のアイコン
  • InputGestureText(キーボードショートカットのラベル)
  • MenuItemSeparator(視覚的な区切り線)
  • チェックボックス形式のメニュー項目(IsCheckable、CheckIconType)
  • ラジオボタン形式のメニュー項目(相互排他のための GroupName)
コマンド

📄 参照: references/commands.md

  • Command プロパティ — ICommand へのバインド
  • CommandParameter — ハンドラーに渡す値
  • CommandTarget — 特定の要素へのルーティング
  • 組み込みの ApplicationCommands(コピー、切り取り、貼り付け)
  • MVVM 向けの DelegateCommand 実装パターン
配置と展開モード

📄 参照: references/orientation-and-expand-mode.md

  • Orientation — 横向き(既定)と縦向き
  • ExpandMode — ExpandOnClick と ExpandOnMouseOver
  • 境界検出とスクロールのサポート概要
  • 選択ガイド
外観

📄 参照: references/appearance.md

  • アニメーションのサポート
  • キーボードナビゲーション
  • Blend 対応(Expression Blend によるカスタマイズ)
  • SfSkinManager と ThemeStudio によるテーマ

クイックスタート

xmlns:syncfusion="http://schemas.syncfusion.com/wpf"

<syncfusion:MenuAdv Height="25" VerticalAlignment="Top">
    <syncfusion:MenuItemAdv Header="File">
        <syncfusion:MenuItemAdv Header="New"/>
        <syncfusion:MenuItemAdv Header="Open"/>
        <syncfusion:MenuItemSeparator/>
        <syncfusion:MenuItemAdv Header="Exit"/>
    </syncfusion:MenuItemAdv>
    <syncfusion:MenuItemAdv Header="Edit">
        <syncfusion:MenuItemAdv Header="Cut"/>
        <syncfusion:MenuItemAdv Header="Copy"/>
        <syncfusion:MenuItemAdv Header="Paste"/>
    </syncfusion:MenuItemAdv>
    <syncfusion:MenuItemAdv Header="View"/>
</syncfusion:MenuAdv>
using Syncfusion.Windows.Shared;

MenuAdv menu = new MenuAdv();

MenuItemAdv file = new MenuItemAdv { Header = "File" };
file.Items.Add(new MenuItemAdv { Header = "New" });
file.Items.Add(new MenuItemAdv { Header = "Open" });
file.Items.Add(new MenuItemSeparator());
file.Items.Add(new MenuItemAdv { Header = "Exit" });

MenuItemAdv edit = new MenuItemAdv { Header = "Edit" };
edit.Items.Add(new MenuItemAdv { Header = "Cut" });
edit.Items.Add(new MenuItemAdv { Header = "Copy" });

menu.Items.Add(file);
menu.Items.Add(edit);
this.Content = menu;

よくあるパターン

シナリオ方法
静的なアプリケーションメニュー(ファイル/編集/表示)XAML で MenuItemAdv を宣言的にネスト
動的なデータ駆動型メニューItemsSource + HierarchicalDataTemplate
メニュー項目の横にアイコンを表示<Image Source="..."/> を指定した MenuItemAdv.Icon
キーボードショートカットのラベルInputGestureText="Ctrl+N"
グループ間の区切り線<syncfusion:MenuItemSeparator/>
切り替えオプション(チェック可能)IsCheckable="True" + CheckIconType="CheckBox"
相互排他的なオプションCheckIconType="RadioButton" + GroupName="group1"
MVVM のコマンドバインディングCommand="{Binding SaveCommand}"
縦向きのサイドバーメニューOrientation="Vertical"
ホバー時にサブメニューを開くExpandMode="ExpandOnMouseOver"

主なプロパティ

MenuAdv:

プロパティ説明
Orientation項目の配置。Horizontal(デフォルト)または Vertical
ExpandModeExpandOnClick または ExpandOnMouseOver
ItemsSourceデータバインドによる項目の生成に使用するデータコレクション
ItemTemplateデータバインドされた項目用の HierarchicalDataTemplate

MenuItemAdv:

プロパティ説明
Header表示テキスト
Icon左側に表示する画像/UIElement
InputGestureTextショートカットキーのラベル(例:"Ctrl+S")
IsCheckableチェックボックス/ラジオボタンの動作を有効にします
CheckIconTypeCheckBox または RadioButton
IsCheckedチェック状態(bool)
GroupNameラジオボタングループの識別子
CommandICommand のバインディング
CommandParameterコマンドに渡す値
CommandTargetルーティングコマンドの対象要素

コメント