PDC 2008

Scenic Ribbon マークアップ

更新日: 2009 年 4 月 28 日


ダウンロード

PDC08_Scenic_Markup_Fundamentals_JPN.doc (Word 形式、136 KB)


目次:

  1. はじめに
  2. Scenic Ribbon マークアップ
    1. 表記法
    2. 検証
    3. 包括
  1. マークアップ コンパイラ
    1. コンパイラのワークフロー
    2. マークアップ リソースをビルドする
  2. 詳細情報


Karl Bridge
Microsoft Corporation
2008 年 9 月

対象:

Windows® 7

要約:

このドキュメントでは、Scenic Ribbon (Scenic リボン) アプリケーション用の、XAML ベースのマークアップ言語とマークアップ ファイルを解析して Win32 バイナリ リソースを生成するコンパイラを紹介します。

法的通知:

このドキュメントは暫定版であり、このソフトウェアの最終的な製品版の発売時に実質的に変更されることがあります。
このドキュメントに記載されている情報は、このドキュメントの発行時点におけるマイクロソフトの見解を反映したものです。変化する市場状況に対応する必要があるため、このドキュメントは、記載された内容の実現に関するマイクロソフトの確約とはみなされないものとします。また、発行以降に発表される情報の正確性に関して、マイクロソフトはいかなる保証もいたしません。
このホワイト ペーパーに記載された内容は情報の提供のみを目的としており、明示、黙示または法律の規定にかかわらず、これらの情報についてマイクロソフトはいかなる責任も負わないものとします。
お客様ご自身の責任において、 適用されるすべての著作権関連法規に従ったご使用を願います。このドキュメントのいかなる部分も、米国 Microsoft Corporation の書面による許諾を受けることなく、その目的を問わず、どのような形態であっても、複製または譲渡することは禁じられています。ここでいう形態とは、複写や記録など、電子的な、または物理的なすべての手段を含みます。ただしこれは、著作権法上のお客様の権利を制限するものではありません。
マイクロソフトは、このドキュメントに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の無体財産権を有する場合があります。別途マイクロソフトのライセンス契約上に明示の規定のない限り、このドキュメントはこれらの特許、商標、著作権、またはその他の無体財産権をお客様に許諾するものではありません。
© 2008 Microsoft Corporation. All rights reserved.
Microsoft、MS-DOS、Windows、Windows NT、Windows Server、Windows Vista、Active Directory、ActiveSync、ActiveX、Direct3D、DirectDraw、DirectInput、DirectMusic、DirectPlay、DirectShow、DirectSound、DirectX、Expression、FrontPage、HighMAT、Internet Explorer、JScript、Microsoft Press、MSN、Outlook、PowerPoint、SideShow、Silverlight、Visual Basic、Visual C++、Visual InterDev、Visual J++、Visual Studio、WebTV、Windows Media、Win32、Win32s、および Zune は米国 Microsoft Corporation の米国またはその他の国における登録商標または商標です。
記載されている会社名、製品名には、各社の商標のものもあります。


1. はじめに

Windows Scenic (以下、Scenic) と呼ばれる一連のユーザー インターフェイス API (Windows® 7 に同梱される形でリリースされ、後に Windows Vista® 用にダウンロードできるようにもなる予定) は、Windows 開発者や Windows プラットフォームに多くの新機能を提供します。Scenic API は、UI 要素のアニメーションをサポートする Scenic Animation (Scenic アニメーション、以下 Animation)、および新しいアプリケーション コマンド システムである Scenic Ribbon (Scenic リボン、以下 Ribbon) という 2 つの機能的なプラットフォームを通じて公開されます。

Scenic およびこれに基づくすべてのプラットフォーム (Animation と Ribbon) では、2 つの異なる開発構造を使用して、視覚的属性を制御ロジックから切り離します。この 2 つとは、Extensible Application Markup Language (XAML) ベースのマークアップ言語と C++ COM ベースのバック エンドです。前者では、Scenic アプリケーションのコントロール、レイアウト、およびさまざまな動作を宣言し、後者では、低レベルの機能やアプリケーション フックを定義します。このような区別があるため、コア機能はソフトウェア エンジニアの担当分野にしたままで、UI 設計者が Scenic アプリケーションの外観を担当することができます。

XAML が当初は Windows Presentation Foundation (WPF) アプリケーションで XML の要素や属性を .NET の名前空間、要素、および属性にマップするために設計されたものであるのに対して、Scenic はネイティブの Win32 API のセットです。さいわい、XAML の設計は柔軟なので、Scenic の XML 要素を対応する Scenic オブジェクトおよびデータ構造にマップすることが可能です。

ページのトップへ


2. Scenic Ribbon マークアップ

Ribbon は、階層メニュー、ツール バー、および作業ウィンドウに代わる新しいものです。効率や見つけやすさに関して最適化されているので、試行錯誤を減らしたり、ユーザーが最小限のマウス クリック操作やキーボード操作でコマンドを見つけ、理解し、使用することができるよう支援したりするのに役立ちます。ギャラリー、リアルタイム プレビュー、および標準コントロールから成るこの充実したコマンド提供システムは、機能および外観の面で Microsoft Office 2007 の Microsoft® Office Fluent リボンに似ています。

Ribbon には、アプリケーション メニュー、エンド ユーザーが選択した Ribbon コントロールが表示されるクイック アクセス ツール バー、グループ別のコントロールが用意されているタブ (標準タブおよびコンテキスト タブ)、状況に応じた充実した UI システムなど、いくつかのコンポーネントで構成されています。

すべての Ribbon コンポーネントは、マークアップ ファイル内で宣言されます。マークアップ ファイルでは以下のことが行われます。

  • 各要素の基本的なプロパティを宣言します。
  • 階層関係を明確に示します。
  • サイズ変更についてのヒントを提供します。
  • イメージやラベルなどのリソースを定義する手段を提供します (Ribbon でサポートされているのは .bmp ファイルのみです。.ico ファイルはサポートされていません)。

Scenic UI 機能はビューと呼ばれるもので識別されます。これは基本的に、組み込みの基本コントロールです (トップレベル コントロールとも呼ばれます)。Scenic マークアップは、このようなビュー (Ribbon と ContextualUI) とビューで使用できるコントロールが、マークアップ ツリーの 1 つの分岐内に含まれるように構成されています。2 つ目の分岐には、各ビューやコントロールで参照されるコマンド識別子 (ID)、および関連付けられているリソースすべて (文字列、イメージなど) が含まれます。

マークアップ コンパイラによって、Scenic アプリケーションで使用されるヘッダー ファイル内にコマンド識別子が配置されます。

以下に、マークアップの一部分を例として示します。この例では、Ribbon アプリケーションのメニュー項目がどのようにコマンドの名前や ID と関連付けられているかを示します。

<?xml version='1.0' encoding='UTF-8'?>
<ScenicIntent>
  <ScenicIntent.Commands>
    <Command Name="cmdNew" Symbol="cmdNew" Comment="New" Id="22001">
      <Command.Label>
        <StringDef>&amp;New...</StringDef>
      </Command.Label>
    </Command>
    <Command Name="cmdOpen" Symbol="cmdOpen" Comment="Open" Id="22002">
      <Command.Label>
        <StringDef>&amp;Open...</StringDef>
      </Command.Label>
    </Command>
    <Command Name="cmdSave" Symbol="cmdSave" Comment="Save" Id="22003">
      <Command.Label>
        <StringDef>&amp;Save...</StringDef>
      </Command.Label>
    </Command>
  </ScenicIntent.Commands>
  <!-- Ribbon ビュー -->
  <Ribbon Name="Microsoft.Scenic.Intent.TestApp">
    <Ribbon.ApplicationMenu>
      <ApplicationMenu CommandName="cmdFileMenu">
        <MenuCategory Class="MajorItems">
          <Button CommandName="cmdNew" />
          <Button CommandName="cmdOpen" />
          <Button CommandName="cmdSave" />
        </MenuCategory>
      </ApplicationMenu>
    </Ribbon.ApplicationMenu>
  </Ribbon>
</ScenicIntent>

ページのトップへ

a. 表記法

Scenic では、以下の種類の XAML 表記法がサポートされています。

  • コンテンツ プロパティ構文。タグで囲まれたテキストがコンテンツ プロパティ (たとえば StringDef の StringDef.Content プロパティ) の設定に使用されます。
<StringDef>&amp;Save...</StringDef>
  • プロパティ要素構文。他の要素がプロパティ (たとえば Command の Label プロパティ) の値として設定されます。
<Command Name="cmdSave" Symbol="cmdSave" Comment="Save" Id="22003">
  <Command.Label>
    <StringDef>&amp;Save...</StringDef>
  </Command.Label>
</Command>
  • 標準的な XML 属性構文。属性値が直接割り当てられます。
<StringDef Content="&amp;Save" />

b. 検証

マークアップ ファイルは、Scenic スキーマに基づいて検証されるだけでなく、コンパイラに組み込まれている専用の、より限定的なルールにも基づいて検証されます。検証エラーのソースは、開発者に通知されません。

c. 包括

Scenic では、包括 (さまざまなマークアップ ファイルを 1 つの複合ファイルにまとめること) はサポートされていません。Ribbon のレイアウトやコントロールについて記述したすべてのマークアップは、1 つのドキュメントに収まっている必要があります。

ページのトップへ


3. マークアップ コンパイラ

Scenic マークアップ専用のコンパイラは、IntentCL.exe というコマンド ライン ツールです。このコンパイラによって、バイナリ形式バージョンの Scenic マークアップ、マークアップ要素を Ribbon ホスト アプリケーションに公開する ID 定義ヘッダー ファイル、およびビルド時にバイナリ マークアップをホスト アプリケーションに関連付けるのに使用されるリソース ファイルが生成されます。

a. コンパイラのワークフロー

次の図は、Scenic マークアップ コンパイラのワークフローを示しています。

図 2 Scenic マークアップ コンパイラのワークフロー

図 2 Scenic マークアップ コンパイラのワークフロー

b. マークアップ リソースをビルドする

Visual Studio で Scenic マークアップを自動的にビルドする方法の詳細については、実習「Adding a Windows Scenic Ribbon to a Win32 Application」(英語) を参照してください。

構文

IntentCl [/b] <ファイル名> <バイナリ ファイル> /header:<ヘッダー ファイル> /res:<リソース ファイル>

引数/オプション

オプション 説明
/b Scenic マークアップ (<ファイル名>) をコンパイルしてバイナリ マークアップ (<バイナリ ファイル>.bml) を生成します。
/header: <ヘッダー ファイル> 生成するヘッダー ファイルです。マークアップのコマンド ID リソース シンボルが含まれています。
/res: <リソース ファイル> 生成するリソース ファイルです。ビルド時にバイナリ マークアップ ファイルをホスト アプリケーションに関連付けるために使用します。

バイナリ マークアップをアプリケーションに関連付ける

バイナリ マークアップと Ribbon リソース ファイルが生成されたら、マークアップをホスト アプリケーションに関連付けるために必要な作業は、アプリケーションのリソース ファイル内にリソース ファイルへの参照を追加することだけです。たとえば、RibbonApp という名前のアプリケーションがあり、ribbonres.rc および ids.h という名前の Ribbon リソース ファイルがある場合は、RibbonApp.rc ファイル内に以下の行を追加します。

#include "ids.h"
#include "ribbonres.rc"

ここで、Windows Scenic アーキテクチャの強みが明らかになります。バイナリ マークアップ ファイルをホスト アプリケーションに関連付け、アプリケーションをコンパイルしたら、アプリケーションを実行し、UI をテストすることができます。UI の微調整が必要な場合に必要な作業は、ソース マークアップ ファイルの内容を変更し、IntentCL.exe を再実行して、問題のあるマークアップ バイナリを置き換えることだけです。アプリケーション全体を再コンパイルしなくても、アプリケーションを再起動すると、変更が加えられた UI が表示されます。これは、アプリケーションの標準的な開発と配布からの大幅な進歩です。

ページのトップへ


4. 詳細情報

  • Scenic Ribbon API とマークアップ要素の詳細については、Windows 7 および .NET Framework 3.5 Service Pack 1 用 Windows® ソフトウェア開発キット (SDK) のプレベータ版を参照してください (PDC 参加者には、このプレベータ版を配布しました)。
  • Scenic Ribbon に関するユーザー エクスペリエンス (UX) ガイドラインの詳細については、UX ガイドを参照してください。
  • リボンを作成する方法の詳細については、「リボンのデザイン プロセス」 を参照してください。
  • XAML の詳細については、MSDN ライブラリの「XAML」セクションを参照してください。

Web アドレスは変更される可能性があるため、ここに記載されている Web サイトに接続できない場合があります。

ページのトップへ