syncfusion-wpf-dropdownbuttonadv について
WPF アプリで Syncfusion の DropDownButtonAdv を実装するためのガイドです。メニュー構築、MVVM バインディング、ポップアップ動作、イベント、外観の設定を扱います。
主な機能
- 01静的項目とデータバインド項目
- 02MVVM コマンドバインディング
- 03ポップアップ方向とサイズ変更
- 04チェック項目とカスタムメニュー内容
- 05テーマ、アイコン、複数行ラベル
活用シーン
- 01選択肢を表示するドロップダウンの作成
- 02メニュー項目と ViewModel データの連携
- 03ポップアップ位置とサイズの設定
- 04メニュー開閉や項目イベントの処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ syncfusion/ wpf-ui-components-skills --skill syncfusion-wpf-dropdownbuttonadvインストール後、Claude Code で/syncfusion-wpf-dropdownbuttonadvを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/command-binding.mddata-binding.mddropdown-behavior.mddropdown-menu-items.mdevents-and-appearance.mdgetting-started.md詳細
WPF DropDownButtonAdv の実装
DropDownButtonAdv は、矢印をクリックするとポップアップメニューを表示する WPF ドロップダウンボタンコントロールです。アイコン付きメニュー項目、データバインディング、コマンドバインディング、設定可能なポップアップの方向、サイズ変更、複数行テキスト、テーマの完全なサポートに対応しています。
アセンブリ: Syncfusion.Shared.WPF
名前空間: Syncfusion.Windows.Tools.Controls
XAML スキーマ: xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
このスキルを使用する場合
- オプションのドロップダウンリストを開くボタンが必要な場合
- アイコン付き、チェック可能、またはグループ化された項目を含む WPF ドロップダウンボタンが必要な場合
DropDownButtonAdv、DropDownMenuGroup、DropDownMenuItemについて確認したい場合- ドロップダウンメニュー項目の MVVM バインディングまたはコマンドバインディングが必要な場合
- ポップアップの方向、サイズ変更、または複数行ラベルを制御したい場合
- ドロップダウンの開閉イベントや項目クリックイベントの処理方法を確認したい場合
クイックスタート
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
<syncfusion:DropDownButtonAdv Label="Country" SizeMode="Normal" SmallIcon="Images/flag.png">
<syncfusion:DropDownMenuGroup>
<syncfusion:DropDownMenuItem HorizontalAlignment="Left" Header="India">
<syncfusion:DropDownMenuItem.Icon>
<Image Source="Images/india.png"/>
</syncfusion:DropDownMenuItem.Icon>
</syncfusion:DropDownMenuItem>
<syncfusion:DropDownMenuItem HorizontalAlignment="Left" Header="France"/>
<syncfusion:DropDownMenuItem HorizontalAlignment="Left" Header="Germany"/>
</syncfusion:DropDownMenuGroup>
</syncfusion:DropDownButtonAdv>
// C# equivalent
DropDownButtonAdv button = new DropDownButtonAdv();
button.Label = "Country";
button.SizeMode = SizeMode.Normal;
button.SmallIcon = new BitmapImage(new Uri("Images/flag.png", UriKind.RelativeOrAbsolute));
DropDownMenuGroup menu = new DropDownMenuGroup();
menu.Items.Add(new DropDownMenuItem { Header = "India", HorizontalAlignment = HorizontalAlignment.Left });
button.Content = menu;
よく使われるパターン
| 目的 | 方法 |
|---|---|
| 静的なメニュー項目 | DropDownMenuGroup 内に DropDownMenuItem を直接宣言します |
| データから項目を動的に表示する | DropDownMenuGroup.ItemsSource をバインドし、ItemTemplate を使用します |
| 項目クリック時の MVVM コマンド | DropDownMenuItem に Command と CommandParameter を設定します |
| ポップアップを左下に表示する | DropDirection="BottomLeft"(既定値) |
| ラベルを折り返す大型ボタン | SizeMode="Large" と IsMultiLine="True" を設定します |
| チェック可能な項目 | DropDownMenuItem に IsCheckable="True" を設定します |
| メニュー内にカスタム UIElement を表示する | DropDownMenuGroup.MoreItems プロパティを使用します |
| 長いリストをスクロール可能にする | グループに MaxHeight と ScrollBarVisibility="Visible" を設定します |
| サイズ変更可能なポップアップ | DropDownMenuGroup に IsResizable="True" を設定します |
主なプロパティ
| プロパティ | 型 | 説明 |
|---|---|---|
Label | string | ボタンのテキストラベル |
SizeMode | SizeMode | 小/標準/大 |
SmallIcon | ImageSource | 小および標準モード用のアイコン |
LargeIcon | ImageSource | 大モード用のアイコン |
IconTemplate | DataTemplate | ベクター/パスアイコンのテンプレート(画像アイコンより優先) |
IconTemplateSelector | DataTemplateSelector | 条件に応じてアイコンテンプレートを選択します |
IconWidth / IconHeight | double | アイコンの寸法 |
DropDirection | DropDirection | ポップアップの位置(既定値:BottomLeft) |
IsMultiLine | bool | 複数行ラベル(大モードのみ) |
DropDownMenuGroup.ItemsSource | IEnumerable | データバインドされたメニュー項目 |
DropDownMenuGroup.IconBarEnabled | bool | 縦型アイコンバーを表示します |
DropDownMenuGroup.ScrollBarVisibility | ScrollBarVisibility | ポップアップ内のスクロールバー |
DropDownMenuGroup.IsResizable | bool | ポップアップのサイズ変更用グリッパー |
DropDownMenuGroup.MoreItems | ObservableCollection<UIElement> | カスタムの下部項目 |
DropDownMenuItem.IsCheckable | bool | チェック/チェック解除を可能にします |
DropDownMenuItem.Command | ICommand | MVVM コマンド |
DropDownMenuItem.CommandParameter | object | コマンドパラメーター |
ドキュメントとナビゲーションガイド
はじめに
📄 参照: references/getting-started.md
- アセンブリ参照(
Syncfusion.Shared.WPF) - デザイナー、XAML、または C# から追加する方法
Label、SizeMode(小/標準/大)の設定- SmallIcon、LargeIcon、IconWidth/IconHeight
- IconTemplate と IconTemplateSelector
- メニュー項目をインラインで追加する基本的な方法
- SfSkinManager を使用したテーマの適用
ドロップダウンメニュー項目
📄 参照: references/dropdown-menu-items.md
- コンテナー要素としての
DropDownMenuGroup - Header と Icon を含む宣言的な
DropDownMenuItem IconBarEnabled(縦型アイコンバー)- 長い項目リスト向けの
ScrollBarVisibility - ポップアップのサイズ変更用グリッパーとしての
IsResizable - チェック可能な項目向けの
IsCheckable/IsChecked - カスタム UIElement を追加するための
MoreItems IsMoreItemsIconTrayEnabled
データバインディング
📄 参照: references/data-binding.md
- Model と ViewModel のパターン
DropDownMenuGroup.ItemsSourceのバインドDataTemplateを使用したItemTemplatex:Referenceを使用して ViewModel からDropDownMenuItem.CommandをバインドDelegateCommand<T>を使用した完全な MVVM の例- データバインディングと宣言的な項目の使い分け
コマンドバインディング
📄 参照: references/command-binding.md
DropDownMenuItemのCommandとCommandParameterDelegateCommand<T>の実装CanExecuteとCanPerformActionの切り替えパターン- 宣言的な XAML での ViewModel コマンドへのバインド
- 注意点:DataTemplate 内でのコマンドのスコープ設定
ドロップダウンの動作
📄 参照: references/dropdown-behavior.md
DropDirection列挙型:Left、Right、BottomLeft、BottomRight、TopLeft、TopRight- 既定の方向は
BottomLeftです - 長いラベルを折り返す
IsMultiLine(Large モードのみ) - RTL サポートのための
FlowDirection
イベントと外観
📄 参照: references/events-and-appearance.md
DropDownOpening/DropDownOpenedイベント(キャンセルをサポート)DropDownClosing/DropDownClosedイベントDropDownMenuItem.ClickイベントDropDownMenuItem.IsCheckedChangedイベント- Expression Blend または Visual Studio でのコントロールテンプレートの編集
- SfSkinManager のテーマと ThemeStudio のカスタムテーマ
コメント
Markdown 対応