mcpField
S
syncfusion-wpf-ribbon

syncfusion-wpf-ribbon

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

syncfusion-wpf-ribbon について

WPF デスクトップアプリで Syncfusion Ribbon を実装するためのスキルです。タブやグループによるコマンド整理に加え、外観、状態の保存、複数ドキュメントの構成を扱います。

主な機能

  1. 01タブとグループでコマンドを整理
  2. 02ボタン、メニュー、入力コントロールの追加
  3. 03アプリメニューと backstage ビューの設定
  4. 04Ribbon 状態の保存と読み込み
  5. 05ドキュメント間の Ribbon 統合
  6. 06キーボードとタッチのアクセシビリティ対応

活用シーン

  1. 01テキストエディターの書式コマンド整理
  2. 02データ分析ツールの機能分類
  3. 03複数ドキュメントエディターでのコマンド共有
  4. 04Office 風アプリ画面の構築

インストール

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

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

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

同梱ファイル

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

references/
getting-started.md
ribbon-accessibility.md
ribbon-advanced-continued.md
ribbon-advanced.md
ribbon-buttons.md
ribbon-customization.md
ribbon-gallery.md
ribbon-inputs.md
ribbon-patterns-continued.md
ribbon-patterns.md
ribbon-structure.md
troubleshooting.md

詳細

Syncfusion WPF Ribbon の実装

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

次のような場合に、このスキルを使用します。

  • WPF デスクトップアプリケーションにリボンインターフェイスを作成する
  • リボンのタブ、グループ、コントロール(ボタン、メニュー、ギャラリー、入力欄)を追加する
  • アプリケーションメニューまたはバックステージビューを設定する
  • リボンの外観、スタイル、レイアウトをカスタマイズする
  • 状態の永続化やマルチドキュメントのシナリオを実装する
  • アクセシビリティ機能やタッチ操作への対応を追加する
  • リボン項目の操作やデータバインディングを処理する

コンポーネントの概要

Syncfusion WPF Ribbon は、デスクトップアプリケーション向けに、最新の Microsoft Office 風リボンインターフェイスを提供する包括的なナビゲーションコンポーネントです。コマンドをタブやグループに整理することで、UI の煩雑さを軽減し、機能を見つけやすくします。

主な機能:

  • タブベースでコマンドを整理し、グループや列に配置
  • 組み込みのリボンコントロール:ボタン、メニュー、ギャラリー、テキスト入力、チェックボックス、ラジオボタン
  • アプリケーションメニューとバックステージビューに対応
  • アプリケーションのセッションをまたいだ状態の永続化
  • 複雑なシナリオに対応するマルチドキュメントのリボンマージ
  • キーボードとタッチ操作の完全なアクセシビリティ
  • カスタマイズ可能なスタイルとレスポンシブレイアウト

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

はじめに

📄 参照: references/getting-started.md

  • インストールと NuGet パッケージの設定
  • XAML での基本的なリボンの作成
  • 名前空間の宣言とプロジェクトの設定
  • 最初のタブとグループの追加
  • 基本的なクリックイベントの接続
リボンの構造とレイアウト

📄 参照: references/ribbon-structure.md

  • タブの作成とタブコレクションの管理
  • コントロールをグループや列に整理
  • アプリケーションメニューの設定
  • バックステージビューの設定
  • カスタムホスティング用の RibbonItemHost
リボンのボタンとメニュー

📄 参照: references/ribbon-buttons.md

  • 標準的な RibbonButton の実装
  • 分割コマンド用の SplitButton
  • クイックメニュー用の MenuButton
  • MenuItem の階層とネストされたメニュー
  • コマンドバインディングとクリックハンドラー
リボンの入力コントロール

📄 参照: references/ribbon-inputs.md

  • RibbonCheckBox と RibbonRadioButton
  • テキスト入力用の RibbonTextBox
  • RibbonComboBox と RibbonListBox
  • 視覚的なグループ分け用の RibbonSeparator
  • リボン入力コントロールへのデータバインディング
リボンのギャラリーコントロール

📄 参照: references/ribbon-gallery.md

  • ギャラリーの設定と項目テンプレート
  • 項目の視覚的な表示
  • 選択と項目選択イベント
  • ギャラリーのフィルタリングと検索
  • カテゴリ別の項目用ギャラリーグループ
カスタマイズとスタイル設定

📄 参照: references/ribbon-customization.md

  • リボンの下に表示する StatusBar の設定
  • スタイルとテンプレートのカスタマイズ
  • テーマと配色
  • サイズグループとレイアウトの圧縮
  • レスポンシブなリボンの動作
高度な機能

📄 参照: references/ribbon-advanced.md

  • マルチドキュメントインターフェイス用のリボンマージ
  • 状態の永続化(リボン状態の保存と読み込み)
  • タブとグループの動的な作成
  • リボンの縮小レイアウト(自動折りたたみ)
  • プログラムによるリボンの操作
アクセシビリティとタッチ操作

📄 参照: references/ribbon-accessibility.md

  • キーボードナビゲーションとショートカット
  • 機能を見つけやすくするツールチップへの対応
  • タッチ入力の処理
  • スクリーンリーダーとの互換性
  • アクセシビリティのベストプラクティス
パターンとベストプラクティス

📄 参照: references/ribbon-patterns.md

  • 一般的なリボン UI パターン
  • アプリケーションメニューとタブの使い分け
  • リボンを整理するための原則
  • パフォーマンスに関する考慮事項
  • 設計のベストプラクティス
トラブルシューティング

📄 参照: references/troubleshooting.md

  • ボタンとメニューに関する問題
  • 入力コントロールに関する問題
  • 一般的な設定上の問題

クイックスタートの例

以下は、開始するための最小限の WPF リボン設定です。


<syncfusion:RibbonWindow x:Class="RibbonApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
        Title="Ribbon Application" Height="600" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        
        
        <syncfusion:Ribbon Grid.Row="0">
            
            <syncfusion:RibbonTab Caption="Home">
                
                <syncfusion:RibbonBar Header="File Operations">
                    <syncfusion:RibbonButton Label="New" 
                                             SmallIcon="Images/new.png"
                                             Click="OnNewClick" />
                    <syncfusion:RibbonButton Label="Open" 
                                             SmallIcon="Images/open.png"
                                             Click="OnOpenClick" />
                    <syncfusion:RibbonButton Label="Save" 
                                             SmallIcon="Images/save.png"
                                             Click="OnSaveClick" />
                </syncfusion:RibbonBar>
                
                
                <syncfusion:RibbonBar Header="Formatting">
                    <syncfusion:RibbonComboBox Label="Font">
                        <syncfusion:RibbonComboBoxItem Content="Arial" />
                        <syncfusion:RibbonComboBoxItem Content="Times New Roman" />
                        <syncfusion:RibbonComboBoxItem Content="Courier New" />
                    </syncfusion:RibbonComboBox>
                </syncfusion:RibbonBar>
            </syncfusion:RibbonTab>
            
            
            <syncfusion:RibbonTab Caption="Edit">
                <syncfusion:RibbonBar Header="Clipboard">
                    <syncfusion:RibbonButton Label="Cut" Click="OnCutClick" />
                    <syncfusion:RibbonButton Label="Copy" Click="OnCopyClick" />
                    <syncfusion:RibbonButton Label="Paste" Click="OnPasteClick" />
                </syncfusion:RibbonBar>
            </syncfusion:RibbonTab>
        </syncfusion:Ribbon>
        
        
        <TextBox Grid.Row="1" AcceptsReturn="True" />
        <StatusBar Grid.Row="2" Height="30" />
    </Grid>
</syncfusion:RibbonWindow>
// MainWindow.xaml.cs
using Syncfusion.Windows.Tools.Controls;

public partial class MainWindow : RibbonWindow
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void OnNewClick(object sender, EventArgs e)
    {
        // Handle new document
    }

    private void OnOpenClick(object sender, EventArgs e)
    {
        // Handle open file
    }

    private void OnSaveClick(object sender, EventArgs e)
    {
        // Handle save file
    }
}

一般的なパターン

パターン 1:アプリケーションメニュー付きリボン

左上のメニューボタンからアクセスできるファイルメニューを作成します。

<syncfusion:Ribbon>
    <syncfusion:Ribbon.ApplicationMenu>
        <syncfusion:ApplicationMenu>
            <syncfusion:MenuItem Header="New" />
            <syncfusion:MenuItem Header="Open" />
            <syncfusion:MenuItem Header="Save" />
            <syncfusion:MenuItemSeparator />
            <syncfusion:MenuItem Header="Exit" />
        </syncfusion:ApplicationMenu>
    </syncfusion:Ribbon.ApplicationMenu>
    
    <syncfusion:RibbonTab Caption="Home">
        
    </syncfusion:RibbonTab>
</syncfusion:Ribbon>
パターン 2:複数のバーを含むタブ

タブ内のコマンドを論理的なグループに整理します。

<syncfusion:RibbonTab Caption="Tools">
    <syncfusion:RibbonBar Header="Analysis">
        <syncfusion:RibbonButton Label="Chart" />
        <syncfusion:RibbonButton Label="Graph" />
    </syncfusion:RibbonBar>
    
    <syncfusion:RibbonBar Header="Data">
        <syncfusion:RibbonButton Label="Sort" />
        <syncfusion:RibbonButton Label="Filter" />
    </syncfusion:RibbonBar>
</syncfusion:RibbonTab>
パターン 3:ドロップダウン付き分割ボタン

関連するコマンドを含むドロップダウンメニュー付きのボタンを作成します。

<syncfusion:SplitButton Label="Format">
    <syncfusion:RibbonMenuItem Header="Bold" />
    <syncfusion:RibbonMenuItem Header="Italic" />
    <syncfusion:RibbonMenuItem Header="Underline" />
</syncfusion:SplitButton>
パターン 4:MVVM によるコマンドのバインド

リボンのボタンをビューモデルのコマンドにバインドします。

<syncfusion:RibbonButton Label="Save" 
                         Command="{Binding SaveCommand}"
                         CommandParameter="All" />

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

Ribbon
  • ApplicationMenu - 左上のメニューコンテンツ
  • BackStage - ファイル操作用のバックステージパネル
  • QuickAccessToolBar - クイックアクセスツールバーの設定
  • AutoPersist - 状態の自動保存を有効化します
  • SaveRibbonState() / LoadRibbonState() - リボンの状態を保存および読み込みます
RibbonTab
  • Caption - タブのラベル(Header ではなく Caption を使用)
  • IsVisible - タブの表示/非表示を動的に切り替えます
RibbonBar
  • Header - バーのラベル(RibbonGroup の代わり)
  • DialogLauncherCommand - 詳細オプション用のダイアログ起動コマンド
RibbonButton / SplitButton
  • Label - ボタンのテキスト
  • SmallIcon / MediumIcon / LargeIcon - ボタンの画像(Icon の代わりに使用)
  • Click / Command - イベントまたはコマンドのバインド
  • SizeForm - サイズのバリエーション(Large、Medium、Small、ExtraSmall)
  • IsCheckable - トグルボタンの動作
RibbonComboBox / RibbonListBox
  • Label - コントロールのラベル
  • SelectedItem - 現在選択されている値
  • ItemsSource - データバインディングのソース
  • SelectionChanged - 選択イベント
RibbonTextBox
  • Text - テキスト値(Label ではありません)
  • Width - コントロールの幅
RibbonCheckBox / RibbonRadioButton
  • Content - コントロールのラベル(Label ではありません)
  • IsChecked - チェック状態
  • GroupName - ラジオボタンのグループ化
RibbonGallery
  • ItemsSource - ギャラリーの項目
  • ItemTemplate - 項目の表示テンプレート
  • ItemSelectionChangedCommand - 選択コマンド

一般的なユースケース

ユースケース 1:テキストエディターアプリケーション 標準的な書式設定コマンド(フォント、サイズ、太字、斜体、下線、配置)を備えたリボンを作成します。セットアップについては、getting-started.md を参照してください。

ユースケース 2:データ分析ツール 分析、グラフ作成、エクスポートの機能を別々のタブに整理し、グラフの種類を選べるギャラリーを配置します。ribbon-gallery.md を参照してください。

ユースケース 3:複数ドキュメント対応エディター リボンのマージを使用して共通のコマンドを共有しながら、ドキュメント固有のコマンドも利用できるようにします。ribbon-advanced.md を参照してください。

ユースケース 4:Office スタイルのアプリケーション ファイル操作用のアプリケーションメニュー、設定用のバックステージビュー、コンテキストタブを実装します。ribbon-structure.md を参照してください。


次のステップ:

  • 基本的なセットアップは references/getting-started.md から始めてください
  • リボンの要件に応じて、該当するリファレンスを参照してください
  • 一般的なシナリオについては ribbon-patterns.md を確認してください

コメント