次の方法で共有


Windows リボン フレームワークの概要

Windows リボン フレームワークは、従来の Windows アプリケーションの階層化されたメニュー、ツール バー、作業ウィンドウの最新の代替手段を提供する豊富なコマンド プレゼンテーション システムです。

新しいコマンド パラダイム

リボン フレームワークは、Windows 開発者向けの新しい UI 機能のホストをサポートする Microsoft Win32 API のコレクションです。

この豊富でモダンな UI コマンド フレームワークには、次のものが用意されています。

  • 新しいリボン フレームワーク アプリケーションの簡単な実装と、既存の Win32 アプリケーションの簡単な移行。
  • リボン アプリケーション間での一貫した外観と動作。
  • アクセシビリティ標準、ビジュアル スタイル (テーマ) のサポート、ハイ コントラスト調整の自動、高ドット/インチ (dpi) の認識による、ファースト クラスの Windows エクスペリエンスのための Windows UI ガイドラインへの準拠。

リボン フレームワークは、次の 2 つの主要な UI コンポーネントで構成されます。

  • ユーザーまたはアプリケーションで指定されているさまざまなリボン コマンドを公開および強調表示するクイック アクセス ツール バー (QAT) と、アプリケーション メニュー、標準タブ、コンテキスト タブ、ヘルプ ボタンを含むタブ行で構成されるリボン コマンド バー。
  • リッチ コンテキスト メニュー システム。

宣言型 XML インターフェイスとネイティブ COM インターフェイスの組み合わせを使用して、これらのコンポーネントのプレゼンテーションと機能を分離します。

ビュー

リボン フレームワークの主要な UI コンポーネント、リボン コマンド バー、コンテキスト メニュー システムは、 ビューによって構造的に区別されます。 フレームワークでは、 リボン ビューと ContextPopup ビューの 2 つのビューがサポートされています。

リボン ビュー

リボン ビューの UI は、 リボン フレームワークの主な機能であり、Windows アプリケーションでコマンドを表示するための次世代のユーザー エクスペリエンスを提供します。

リボンは、アプリケーション ウィンドウの上部にある一連のタブを通じてアプリケーションの主な機能を公開するコマンド バーです。 機能と外観は、Microsoft Office 2007 Fluent UI と似ています。 リボンは、標準的な Windows メニュー システムの一般的なコマンド検出の試行錯誤プロセスに対する直感的なカウンターポイントを提供します。 効率と検出可能性のために最適化されたリボンは、標準的なコントロール、ギャラリー、ライブ プレビューのシステムを通じて、マウスのクリックとキーストロークを最小限に抑えたコマンドの検索、理解、および使用を容易にします。

次の図は、Windows 7 用ペイントのリボン フレームワークの実装を示しています。

Windows 7 のペイントでのリボンの実装を示すスクリーン ショット。

ContextPopup ビュー

ContextPopup ビューは、コンテキスト ポップアップ コントロールを使用して、以前の Windows アプリケーションで使用できるよりも豊富なコンテキスト メニュー システムを提供します。 コンテキスト ポップアップはリボンのサポートでのみ展開できます。スタンドアロンのコンテキスト ポップアップは、リボン フレームワークではサポートされていません。

リボン のアーキテクチャ

従来のコントロールベースの Windows UI 開発モデルとは対照的に、Windows リボン フレームワーク UI 開発は、コマンドのより抽象的な概念に基づいています。 コントロール自体ではなく、コントロールに関連付けられているコマンドに重点を置くことで、フレームワークは、リボン ホスト アプリケーションから取得されたコマンドの実行状態に応じて、必要に応じて UI を自動的に調整できます。

リボン フレームワークを使用するアプリケーションは、そのコマンドが UI でどのように表されるかの詳細に関する説明を受けることなく、コマンドを公開します。 これは、意図ベースの UI モデルと呼ばれることもあります。 Command 型、そのプロパティ、およびリソースによって、アプリケーションの Command の意図が定義されます。 たとえば、マウス入力、キーボード入力、またはジャイロスコープ デバイスを振る場合でも、アプリケーションがコマンドの実行にのみ関係し、呼び出し方法ではなく、同じコマンドが実行される可能性があります。

リボン フレームワークは、2 つの異なる開発構造を持つプレゼンテーションから機能を分離することで、この柔軟性を提供します。コントロールを宣言する拡張アプリケーション マークアップ言語 (XAML) ベースのマークアップ言語と、実行時にフレームワークを初期化してイベントを処理する C++ COM ベースのインターフェイス。 この違いにより、UI 開発者とデザイナーはリボン アプリケーションの外観に対して単独で責任を負うことができますが、コア機能はソフトウェア エンジニアの領域のままです。

詳細については、「 コマンドとコントロールについて」を参照してください。

リボン API

リボン API は、ビューとリボン ホスト アプリケーションの間に必要な接続を提供します。 これらの API は、次のインターフェイスとプロパティ キーで構成されます。

  • UI サービスを実行するためにリボン フレームワークによって実装される一連の COM インターフェイス。

    インターフェイス 説明
    IUIContextualUI ContextPopup ビューのコア機能のメソッドを定義します。
    IUIFramework リボンビューと ContextPopup ビューのコア機能をサポートするメソッドを定義します。
    IUIRibbon リボン ビューの設定とプロパティを指定するためのメソッドを定義します。
    IUISimplePropertySet プロパティ キーによって識別される値を取得するためのメソッドを定義します。 このインターフェイスはリボン フレームワークによって実装され、項目ギャラリーの IUICollection オブジェクト内の各項目のホスト アプリケーションによっても実装されます。
    ホスト アプリケーションによって実装される場合、このインターフェイスで定義されているメソッドを使用して、 IUICollection で選択した項目のプロパティ キー値を取得します。
    IUICollection リボン QAT やコレクション ベースのギャラリーなどのコレクション ベースのコントロールを実行時に動的に操作 するためのメソッドを定義します。
    IUIImage リボン UI に表示するイメージを取得するためのメソッドを定義します。
    IUIImageFromBitmap IUIImage オブジェクトを作成するためのファクトリ メソッドを定義します。
  • UI の変更に応じてフレームワークが呼び出すリボン ホスト アプリケーションによって実装される一連の COM インターフェイス。

    インターフェイス 説明
    IUIApplication リボン フレームワークのアプリケーション コールバック エントリ ポイント メソッドを定義します。
    IUICommandHandler リボン フレームワークからコマンド情報を収集し、Command イベントを処理するためのメソッドを定義します。
    IUICollectionChangedEvent 実行時にコレクションへの変更を処理するために必要なメソッドを定義します。
  • アプリケーションがプログラムによって制御する UI プロパティを定義するプロパティ キーのセット。

    プロパティ キーの種類 説明
    コレクション リボン コレクション ベースのコントロールのプロパティを定義します。
    カラー ピッカー リボンのカラー ピッカー コントロールのプロパティを定義します。
    フォント リボン FontControl のプロパティを定義します。
    グローバル リボン フレームワークのグローバル プロパティを定義します。
    リソース リボン リソースのプロパティを定義します。
    リボン リボン ビューのプロパティを定義します。
    State リボン コントロールの状態またはコンテキストのプロパティを定義します。

セキュリティとプライバシー

リボン フレームワーク DLL (uiribbon.dll) はインプロセスで実行され、ホスト アプリケーションと同じ特権を持ちます。 リボンは、ホスト アプリケーションがスピナーや編集可能コンボ ボックスなどの厳密に制約されたコントロールからの入力またはユーザー入力として提供するもののみを受け入れます。

さらに、フレームワークは、ホスト アプリケーションによって提供されるもの、またはオプトイン Windows カスタマー エクスペリエンス プログラムを通じて (エンド ユーザーによって承認された) 収集される情報を除き、永続的に情報を保存しません。

アクセシビリティとローカライズ

アクセシビリティの高い UI を提供するために、リボン フレームワークは Microsoft Active Accessibility を実装します。 関連する Microsoft Active Accessibility プロパティに有効で有用な情報を自動的に設定することで、すべてのユーザーに包括的なエクスペリエンスを提供する開発者の負担を大幅に軽減します。

リボン フレームワークのアクセシビリティの詳細については、「 2007 Office Fluent ユーザー インターフェイスでのアクティブなアクセシビリティの操作」を参照してください。

さらに、リボン フレームワークは Windows 機能であり、そのため、Windows がサポートするすべての言語にローカライズされています。 ただし、開発者は、独自の特定のアプリケーション リソースをローカライズする必要があります。

まとめ

リボンは、アプリケーション開発者、アーキテクト、およびデザイナーが新しいアプリケーションを設計およびビルドするとき、または既存のアプリケーションを更新するときに考慮する必要がある、新しく魅力的な形式のコマンド プレゼンテーションです。

Windows リボン開発フォーラムでは、トピックについて説明し、Windows リボン フレームワークを実装するアプリケーションの開発に関連する質問を行うことができます。

リボン マークアップを使用してコマンドとコントロールを宣言する

リボン ユーザー エクスペリエンス のガイドライン

リボンデザインプロセス