Share via


Windows Presentation Foundation Windows Media Center によってホストされるアプリケーションの概要

更新 : 2007 年 11 月

Microsoft Windows Media Center (WMC) は、Windows Vista Home Premium Edition、Windows Vista Ultimate、および Microsoft Windows XP Media Center Edition 2005 と共にインストールされるデジタル メディア エンターテイメント アプリケーションです。WMC を使用すると、テレビ (デジタル高精細テレビ)、DVD、音楽、ビデオ、ラジオ、電話など、多岐にわたるメディアを使用および管理することができます。

Windows Media Center スクリーン ショット

WMCパーソナル コンピュータ (PC) では、特に何も設定しなくても、すぐにデジタル メディアの表示や再生を行うことができます。これは、ユーザーがマウス、キーボード、およびモニタを使用して PC で WMC を操作するため、"2' ユーザー エクスペリエンス" と呼ばれます。

一方で、WMCPC は、リモコンやリモート キーボードの入力をサポートするように構成することもできます。この場合、ユーザーは、WMCPC をその場で操作する必要はありません。これは "10' ユーザー エクスペリエンス" と呼ばれ、大画面モニタや従来のホーム エンターテイメント ハードウェア (テレビやサウンド システムなど) を使用する WMC 構成に適しています。

WMC が提供するコア機能は、デジタル メディアの管理や再生のための一連のアプリケーションで構成されています。ただし、WPF を使用して、Windows Vista バージョンの WMC 用の独自のカスタム アプリケーションを作成することもできます。

ここでは、WMC 用 WPF アプリケーションの開発の概要を説明します。ここで扱う内容は次のとおりです。

  • 単純な WPF ゲーム アプリケーションを構築および配置する。

  • 2' および 10' の両方の WMC ユーザー エクスペリエンスを対象にする。

  • WMC をサポートするために WPF コントロールをカスタマイズする。

  • 新しい WMC 用 WPF コントロールを使用する。

  • .NET Framework のサポートを利用する。

  • マネージ API を通じて WMC と統合する。

  • Visual Studio 2005 を使用して開発プロセスを強化する。

WMC 用アプリケーションの開発の詳細については、Windows メディア センター ソフトウェア開発キット (WMC SDK) を参照してください。

このトピックには次のセクションが含まれています。

  • WMC での WPF アプリケーションのホスト
  • WMC 用 WPF アプリケーションの起動
  • WMC のユーザー エクスペリエンス
  • WMC 用 WPF コントロールの更新
  • その他の WMC 用 WPF コントロール
  • .NET Framework 3.0 クラス ライブラリの使用
  • WMC マネージ API との統合
  • Visual Studio による開発
  • WMC 用 WPF アプリケーションのインストール
  • 関連トピック

WMC での WPF アプリケーションのホスト

WPF では、スタンドアロンとブラウザ ホストの 2 種類のアプリケーションを開発できます。スタンドアロン アプリケーションには、アプリケーション コンテンツをホストするための独自のウィンドウやダイアログ ボックスがあります。ブラウザ ホスト アプリケーションには、Loose XAML アプリケーションと XBAP の 2 種類があり、どちらも Internet Explorer 7 によってホストされます。ただし、Internet Explorer 7 では WPF は認識されません。このため、WPF は、Internet Explorer 7 で WPF コンテンツをホストできるようにするために、Internet Explorer のようなアプリケーションにホスティング プロキシを提供します。このプロキシが、他のアプリケーションの代わりに WPF コンテンツをホストします。このプロキシは、Internet Explorer と同じ共通の Windows インフラストラクチャを使用して構築されているため、Internet Explorer でそのままホストできます。

このプロキシは、WMC でもホストできるため、WPF ブラウザ ホスト アプリケーションを WMC でホストすることができます。したがって、WPF アプリケーションの開発プラットフォーム全般 (特にブラウザ ホスト アプリケーションのナビゲーション機能やセキュリティ機能) を利用できることになります。

以降では、WMC 用の WordGame! アプリケーションを使用します (「Windows Media Center 用 WordGame! のデモ」を参照してください)。

WMC 用 WPF アプリケーションの起動

WordGame! アプリケーションは次の 3 つのファイルで構成されています (すべての XBAP に最低限必要なファイル)。

  • wordgamewmc.exe。XBAP です。

  • wordgamewmc.exe.manifest。ClickOnce アプリケーション マニフェストです。

  • wordgamewmc.xbap。ClickOnce 配置マニフェストです。

XBAP は ClickOnce を使用して起動されるので、アプリケーション マニフェスト ファイルと配置マニフェスト ファイルによって構成されている必要があります (「WPF アプリケーション (WPF) のビルド」を参照してください)。具体的に言うと、XBAP は、.xbap ファイルを参照またはダブルクリックすると起動します。起動時の既定の動作では、WPF の代わりに ClickOnce がアプリケーションをダウンロードします。ダウンロードが完了すると、WPF が Internet Explorer を起動して、次の図のようにアプリケーションに移動します。

Word Game スクリーン ショット

一方、WMC アプリケーションを起動するには、WMC リンク ファイル (.mcl) を参照またはダブルクリックします。.mcl ファイルは XML 構成ファイルであり、参照またはダブルクリックされると WMC ホスト (ehshell.exe) で開くように Windows で構成されています (WMC SDK を参照してください)。

Aa970447.alert_note(ja-jp,VS.90).gifメモ :

.mcl ファイルは、開発プロセスでは便利ですが、WMC アプリケーションのインストールや起動のためのメカニズムとしては推奨されません。詳細については、「WMC 用 WPF アプリケーションのインストール」を参照してください。

.mcl ファイルを開くと、そこに含まれている構成命令が WMC ホストによって解析され、処理されます。中でも最も重要な構成命令は、開くアプリケーションの名前です。このメカニズムを利用して、XBAP を起動するように構成された .mcl ファイルを作成します。

<application url="https://localhost/wordgamewmc/wordgamewmc.xbap" />

この .mcl ファイルが WMC によって処理されると、WMC ホストが .xbap ファイルに移動します。その結果、次の図のように、ClickOnce が WMC ホスト内にアプリケーションを起動します。

Word Game スクリーン ショット

Aa970447.alert_note(ja-jp,VS.90).gifメモ :

WMC で Loose XAML アプリケーションをホストする場合は、次のように、.xaml ファイルを使用して .mcl ファイルを構成します。

<application
  url="https://localhost/loosexamlapplication/loosexamlpage.xaml" />

XBAP 自体には一切変更を加えず、構成ファイルを 1 つ追加するだけで、WPF ブラウザ ホスト アプリケーションをそのまま WMC でホストすることができます。

ただし、WMC のユーザー エクスペリエンスはきわめて特殊であるため、XBAPWMC アプリケーションのデザインでは、一貫性やスタイルのために、WMC のユーザー エクスペリエンスとの統合が必要になります。以降では、WMC のユーザー エクスペリエンスの主要な側面と、そのユーザー エクスペリエンスに配慮した XBAP の構築方法について説明します。

WMC のユーザー エクスペリエンス

一貫性のあるユーザー エクスペリエンスの提供は、アプリケーション開発のきわめて重要な側面です。WMC ユーザーとの関連では、次のような点でアプリケーションの一貫性を維持するように努める必要があります。

  • テーマ。アプリケーションのユーザー インターフェイスの全体的なスタイル。

  • レイアウト。コントロールの位置およびサイズ。

  • ナビゲーション。キーボード、マウス、およびリモコンによるアプリケーションのユーザー インターフェイスのナビゲーション。

WMC のユーザー エクスペリエンスの詳細については、WMC SDK を参照してください。以降では、その概要を大まかに説明します。

テーマ

次の図からわかるように、WMC のテーマには独特な要素がいくつかあります。

Windows Media Center スクリーン ショット

中でも最も特徴的なのは、青いガラスのような背景と、丸みを帯びた明るい色の大きなフォントです。これらにより、モニタの前に座っている 2' ユーザーと、テレビからある程度離れたところにいる 10' ユーザーの両方にとって見やすい外観が作り出されています。WPF アプリケーションでは、こうした外観に対する全体的なアプローチに従う必要がありますが、WMC では、この情報が WPF アプリケーションに対してネイティブで公開されていません。さいわいWPF にはスタイルやテーマの豊富なインフラストラクチャが用意されているため、それらを利用すれば、WMC の外観を必要に応じて簡単に複製することができます。また、WPF を使用して、視覚的に豊かなまったく新しいユーザー エクスペリエンスを作成することもできます。ただし、その場合は、レイアウトやナビゲーションに留意する必要があります。

たとえば次のようにして、WMC スタイルのページの背景を作成することができます。

<Application
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="HomePage.xaml">
  <!--MediaCenterThemes.xaml-->
  <Application.Resources>
    <LinearGradientBrush x:Key="PageGlassyBackground"  StartPoint="0,0.5" EndPoint="1,0.5">
      <GradientStop Color="#ff2B6680" Offset="1.5" />
      <GradientStop Color="#569dc2" Offset="0" />
    </LinearGradientBrush>
    ...
  </Application.Resources>
</Application>

一般にテーマは複数の要素で構成されているため、カスタム リソース ディクショナリを使用して WMC テーマのスタイルをカプセル化することを検討する必要があります。

<ResourceDictionary>
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" />
  <LinearGradientBrush x:Key="PageGlassyBackground"  StartPoint="0,0.5" EndPoint="1,0.5">
    <GradientStop Color="#ff2B6680" Offset="1.5" />
    <GradientStop Color="#569dc2" Offset="0" />
  </LinearGradientBrush>
  ...
</ResourceDictionary>

リソース ディクショナリをアプリケーションに組み込むには、アプリケーション定義の Application.Resources 要素を構成して、リソース ディクショナリの .xaml ファイルを参照します。

<Application
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    StartupUri="HomePage.xaml">
  <!--MediaCenterThemes.xaml-->
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="MediaCenterTheme.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

次の図は、完全な WMC テーマのスタイルとリソースを使用して更新された WordGame! を示しています。

Word Game スクリーン ショット

WMC では、アプリケーションやブランドに固有の要素を含むアプリケーション テーマの開発が制限されているわけではありません。ただし、WMC ユーザー エクスペリエンス用にアプリケーションをデザインする際には、アプリケーションのテーマについていくつかの点を考慮する必要があります。その例を以下に示します。

  • テレビに適した色 : にじみやすい鮮やかな色は使用しないでください (緑や赤など)。

  • コントラスト : テキストが背景に溶け込まないように、ビジュアル要素の前景色と背景色のコントラストに留意してください。

  • フォント : セリフ書体でない大きなサイズのフォントを使用すると読みやすさが向上します。また、コンテンツから不要な言い回しを取り除くと、テキスト領域がより読みやすくなります。

  • ボタン : ボタンの外観はシンプルにします。

  • イメージ : イメージを作成するときには、表示品質、表示サイズ、およびダウンロード サイズを考慮します。

  • アニメーション : 必要に応じてアニメーションを使用します。

WMC のアプリケーション テーマの詳細については、WMC SDK を参照してください。

レイアウト

ユーザーが WMC ホストの上にマウスを置くと、次の図のように、マウス駆動ナビゲーションのための追加のナビゲーション UI 要素が表示されます。一見しただけではわかりませんが、これが問題になることがあります。

WordGame サンプルのスクリーン ショット

この図では、アプリケーションの UI の左上と右下の部分がナビゲーション クロムに覆われてしまっています。このような場合は、ナビゲーション UI を考慮に入れて、UI のレイアウトを更新することができます。WordGame! の場合、そのためには、アプリケーションのタイトルを UI の右に移動し、ホーム ページのコンテンツをホストする Grid 要素の一番下に高さ 50 ピクセルの行を追加します。

<Grid>
    ...
    <Grid.RowDefinitions>
        <RowDefinition Height="5" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="20" />
        <RowDefinition Height="Auto" />
        <RowDefinition />
        <RowDefinition Height="50" />
    </Grid.RowDefinitions>
    <!-- Game title -->
    <TextBlock ... TextAlignment="Right">Word Game!</TextBlock>
    ...
</Grid>

これらの行を追加した結果は、次の図のようになります。

WordGame サンプルのスクリーン ショット

このように、WMC 用 XBAP では、WMC のさまざまなレイアウトの動作や一貫性への配慮が必要になります。

レイアウトに関する主な考慮事項を以下に示します。

  • アプリケーションのレイアウト : アプリケーションのユーザー インターフェイスをユーザーにとって覚えやすく忘れにくいものにするため、シンプルで一貫性のあるレイアウトにする必要があります。

  • WMC のレイアウト : アプリケーションのレイアウトでは、無理のない限り、WMC の全体的なユーザー エクスペリエンスとの一貫性を維持する必要があります。これにより、WMC を使い慣れているユーザーにとって取っつきやすいアプリケーションになります。

  • ビデオ : アプリケーションで WMC マネージ API を使用してビデオを表示する場合、WMC は画面の左下でビデオを再生します。ユーザー インターフェイスのレイアウトでは、このことを考慮に入れる必要があります。

  • 解像度 : アプリケーションのユーザー インターフェイスとレイアウトの対象解像度を 1024 x 768 にします。WPF には、解像度 1024 x 768 でのユーザー インターフェイスのレイアウトと、ユーザー インターフェイスのサイズを変更した場合のレイアウトの維持を支援するレイアウト サポートが用意されています (詳細については、「レイアウト システム」を参照してください)。

WMC のレイアウトの詳細については、WMC SDK を参照してください。

ナビゲーション

テーマとレイアウトは、基本的に、アプリケーションのユーザー インターフェイスを構成するコントロールの配置方法を決定します。一方、ナビゲーションは、ユーザーがそれらのコントロールに到達する方法や、コントロール間を移動する方法を決定します。

現在ユーザー入力を受け取っているコントロールを、フォーカスを持つコントロールと呼びます。XBAP アプリケーションのページが表示されているときに特定のコントロールにフォーカスを移動するには、次のマークアップを使用します。

<!-- Set focus on guess character text box -->
<Page ... FocusManager.FocusedElement="{Binding ElementName=guessedChar}">
    ...
</Page>

ここでは、2' モードと 10' モードの両方の操作をサポートする必要があります。

2' モードと 10' モードの両方でユーザーが WMC アプリケーションのコントロール間を移動できるようにするには、マウス、キーボード (接続されたキーボードまたはリモート キーボード)、およびリモコンによるナビゲーションをアプリケーションで処理する必要があります。マウスとキーボードによるナビゲーションは、他の WPF アプリケーションの場合と同じです。これには、既定で次の操作が含まれます。

  • コントロールをクリックしてそのコントロールにフォーカスを移動する。

  • Tab キーを使用してコントロールの間でフォーカスを順番に移動する。

  • ボタンの IsDefault プロパティを使用して、Return キーが押されたときに既定でクリックされるボタンを指定する。

  • ボタンの IsCancel プロパティを使用して、Esc キーが押されたときに既定でクリックされるボタンを指定する。

リモコンをサポートするには、方向ナビゲーションをサポートする必要があります。つまり、ユーザーがリモコンの上下左右の各ボタンを押してコントロールのフォーカスを移動できるようにする必要があります。WPF コントロールの特定のサブセットを使用する限りは、方向ナビゲーションをサポートするために特別なコードを書く必要はありません。

WMC 用 WPF コントロールの更新

WPF には多数のコントロールが用意されていますが、既定で WMC アプリケーションでの使用に適しているコントロールはそのうちの一部だけです。WMC アプリケーションでの使用に適しているかどうかは、リモコンを使用してそのコントロールに移動し、そのコントロールを操作して、そのコントロールから別のコントロールに移動することができるかどうかによって決まります。次の図は、リモコンからの入力をサポートする WPF コントロールのサブセットを示しています (WMC のスタイルが使用されています)。

Windows Media Center スクリーン ショット

これ以外の WPF コントロールは使用できないということではありませんが、WMC でこれ以外のコントロールを使用するには追加の作業が必要になります。例として、次の図で WMC によってホストされている Slider コントロールについて考えてみます。

スライダ スクリーン ショット

Slider は既定で、マウス、キーボード、またはリモコンを使用して表示したり、別のコントロールから移動したりすることができます。しかし、リモコンを使用して Slider から別のコントロールに移動することはできません。Slider でリモコンの上下左右の各ボタンを押すと、Slider の値を増減させようとしていると解釈されるからです。

こうした状況を解決するには、目的のコントロールと、そのコントロールを操作するための追加のコントロール (リモコンに対応したコントロール) を含む、複合コントロールを作成する方法があります。たとえば Slider は、2 つのボタン (Slider の値をデクリメントするボタンと、Slider の値をインクリメントするボタン) を使って使用することもできます。そのためには次のコードを使用します。

<Page x:Class="SliderPage"
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">

  <!-- Custom Slider -->
  <StackPanel Margin="50" Orientation="Horizontal" VerticalAlignment="Top">
    <Button 
      Name="decrementButton" 
      Click="decrementButton_Click"
      Margin="10" 
      FontSize="10" 
      HorizontalContentAlignment="Center" 
      VerticalContentAlignment="Center" 
      Width="40" Height="40">
      -
    </Button>
    <Slider 
      Name="slider" 
      Focusable="False" 
      Width="100" Margin="0,15,0,0" 
      Minimum="0" Maximum="10" Value="50" 
      Interval="1" TickFrequency="1" TickPlacement="BottomRight" />
    <Button 
      Name="incrementButton" 
      Click="incrementButton_Click"
      Margin="10" 
      FontSize="10" 
      HorizontalContentAlignment="Center" 
      VerticalContentAlignment="Center" 
      Width="40" Height="40">
      +
    </Button>
  </StackPanel>
  
</Page>
using System.Windows;
using System.Windows.Controls;
public partial class SliderPage : System.Windows.Controls.Page
{
    //</SnippetSliderPageCodeBehind1>
    public SliderPage()
    {
        InitializeComponent();
    }

    void decrementButton_Click(object sender, RoutedEventArgs e)
    {
        this.slider.Value--;
    }
    void incrementButton_Click(object sender, RoutedEventArgs e)
    {
        this.slider.Value++;
    }
}

結果は次の図のようになります。

スライダ スクリーン ショット

その他の WMC 用 WPF コントロール

次の図に示す TextBox コントロールも問題になります。リモコンでは、TextBox に文字を入力することはできません。そこで、リモコン ユーザーが文字を選択できるようにするためのコントロールが必要になります。フォーム ファクタの制限によって完全なキーボードを装備できないモバイル デバイスでは、ユーザー インターフェイスにキーボードを表示して、ユーザーが必要な文字を選択できるようにする方法がよく使用されています。

このサンプルには、次の図に示す、WMC 用 WPF アプリケーションのためのソフト キーボード コントロールが含まれています。

ソフト キーボード コントロール

これは、サンプルに含まれている Keyboard.dll アセンブリの SoftKeyboardTextBox クラスとして実装されています。このアセンブリは MCEControls 名前空間にあります。これを使用するには、次の手順を実行します。

  1. MCEControls に含まれる Keyboard アセンブリへの参照を追加します。

  2. コンテンツ内のアセンブリに XML 名前空間宣言を追加します。

  3. SoftKeyboardTextBox を宣言および構成する XAML を追加します。

結果のコードは次のようになります。

<Page 
  ... 
  xmlns:MCEControls="clr-namespace:MCEControls;assembly=Keyboard" >
  ...
  <MCEControls:SoftKeyboardTextBox 
    Name="guessedChar" 
    Grid.Column="0" 
    Margin="0,0,5,0" 
    Width="80" 
    MaxLength="1" />
  ...
</Page>

.NET Framework 3.0 クラス ライブラリの使用

WMC 用 WPF アプリケーションはコントロールのみに制限されません。WPF アプリケーションでは、.NET Framework をその他の機能のために活用することもでき、スタンドアロンやブラウザ ホストの WPF アプリケーションと同じコードを使用することができます。

たとえば、WMC によってホストされるアプリケーションのデータを保存したり読み込んだりするコードは非 WMC アプリケーションのコードと同じで、セキュリティの制約も同じように当てはまります (「Windows Presentation Foundation のセキュリティ」を参照してください)。したがって、WMC によってホストされるアプリケーションがローカル ディスクへの書き込みを実行できるかどうかは、アプリケーションが起動された場所によって決まります。

安全のために、アプリケーションで分離ストレージを使用してファイルを保持することができます。

using System;
using System.ComponentModel;
using System.IO;
using System.IO.IsolatedStorage;
using System.Xml;
using System.Xml.Serialization;
...
public static PlayerScore Load()
{
    try
    {
        // Load the playerscore.xml file from isolated storage
        using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
        using (Stream stream = new IsolatedStorageFileStream("playerscore.xml", FileMode.Open, isf))
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(PlayerScore));
            return (PlayerScore)xmlSerializer.Deserialize(stream);
        }
    }
    catch (FileNotFoundException ex)
    {
        return new PlayerScore();
    }
}

public static void Save(PlayerScore playerScore)
{
    // Save the playerscore.xml file to isolated storage
    using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
    using (Stream stream = new IsolatedStorageFileStream("playerscore.xml", FileMode.Create, isf))
    {
        XmlSerializer xmlSerializer = new XmlSerializer(typeof(PlayerScore));
        xmlSerializer.Serialize(stream, playerScore);
    }
}

WMC マネージ API との統合

WMC 用 WPF アプリケーションは、一連のマネージ API を通じて WMC 自体の機能と統合することもできます。これらの API は、オペレーティング システムと一緒にインストールされ、Microsoft.MediaCenter.dllMicrosoft.MediaCenter.UI.dll という 2 つのアセンブリに配置されています。

これらの API を使用すると、メディア コンテンツの検査、構成、再生など、WMC の多岐にわたるサービスとの統合が可能になります。詳細については、WMC SDK を参照してください。

これらの機能には、アプリケーションのユーザー エクスペリエンスと WMC とのさらなる統合を実現するという側面があります。たとえば、WPF アプリケーションでは、ユーザーへの通知を行う必要がある場合に、次のようなメッセージ ボックスを表示することができます。

WordGame サンプルのスクリーン ショット

しかし、WPF の標準のメッセージ ボックスの外観は、WMC のユーザー エクスペリエンスとの一貫性がありません。さいわい、WMC マネージ API には、WMC スタイルの独自のメッセージ ボックスが用意されています。これを使用するためのコードは次のようになります。

using Microsoft.MediaCenter;
...
// Get media center host and show dialog box
MediaCenterEnvironment mce = Microsoft.MediaCenter.Hosting.AddInHost.Current.MediaCenterEnvironment;
mce.Dialog(msg, "WordGame!", DialogButtons.Ok, 1000, true);

これにより、次のような WMC のダイアログ ボックスが表示されるようになります。

WordGame サンプルのスクリーン ショット

WMC マネージ API の詳細については、WMC SDK を参照してください。

Aa970447.alert_note(ja-jp,VS.90).gifメモ :

WMC マネージ API を参照する XBAP を実行できるのは、その XBAP が WMC によってホストされている場合だけです。

Visual Studio による開発

ここまでは、WMC 用 XBAP を構築する際に対処する必要があるプログラミング上の中心的な課題について説明しました。それらを以下に示します。

  • 一般的な XBAP アプリケーションを作成する。

  • .mcl ファイルを使用して WMC で XBAP を起動する。

  • XBAP 用の WMC テーマを作成する。

  • WMC マネージ API を参照する。

通常は、WMC 用 XBAP を作成するたびにこれらの課題に取り組む必要があります。WMC SDK と共ににインストールされる Microsoft Visual Studio 2005 用 Media Center Application (WPF) プロジェクト テンプレートを使用すると、WMC 用 XBAP を作成するたびにこれらの要素を自分で再作成する必要がなくなります。

Aa970447.alert_note(ja-jp,VS.90).gifメモ :

WMC プロジェクト テンプレートは、Visual Studio 2005 と "Fidalgo" が両方ともインストールされている場合にのみインストールされます。

Media Center Application (WPF) プロジェクト テンプレートによって作成される Visual Studio 2005 プロジェクトには、これらの要素が既定で含まれています。

新しい Media Center アプリケーション (WPF) を作成するには、次の手順を実行します。

  1. Visual Studio 2005 を開きます。

  2. [Microsoft Visual Studio]、[ファイル]、[新規作成]、[プロジェクト]、[Visual C#]、[.NET Framework 3.0]、[Media Center Application (WPF)] の順にクリックします。

このプロジェクト テンプレートによって既定で生成される主なアイテムは次のとおりです。

  • readme.txt ファイル。WPF 用 XBAP の構築とデバッグに関する有用な情報が含まれています。

  • WMC マネージ アセンブリへの参照。

  • MediaCenterTheme.xaml ファイル。既定のページ (Page1.xaml) に既定で適用される WMC スタイルの完全なセットを含むリソース ディクショナリです。

  • 標準の XBAP 出力と一緒に生成される .mcl ファイル。

Microsoft Visual Basic 用の同等のプロジェクト テンプレートもあります。

プロジェクトのデバッグ

WMC ホスト内の XBAP を Visual Studio 2005 からデバッグするには、次の手順を実行します。

  1. ソリューション エクスプローラで、プロジェクト名を右クリックし、[プロパティ]、[デバッグ] の順にクリックします。

  2. [プログラムの開始] を c:\windows\system32\presentationhost.exe に設定します。

  3. [コマンドライン引数] を -debug に設定します。

  4. [Microsoft Visual Studio]、[デバッグ]、[デバッグ開始] の順にクリックして (または F5 キーを押して)、アプリケーションを実行します。

  5. ビルド プロセスの間に生成された .mcl ファイル (\bin\debug\assemblyname.mcl) をダブルクリックします。

.mcl ファイルで指定されているアプリケーションが WMC 内に起動され、WMC でホストされます。

WMC 用 WPF アプリケーションのインストール

Visual Studio 2005 を使用する利点の 1 つは、Microsoft Windows インストーラ アプリケーション (.msi ファイル) の作成を支援する機能があることです。msi ファイルは、WPF アプリケーションを WMC クライアント コンピュータに配布するのに便利です。

WordGame! 用の単純な Windows インストーラ アプリケーションは、次の手順に従って作成されています。

  1. Visual Studio 2005 のソリューション エクスプローラで、XBAP ソリューションを右クリックし、[追加]、[新しいプロジェクト] の順にクリックします。

  2. [プロジェクトの種類] の一覧で、[その他のプロジェクトの種類]、[セットアップと配置] の順にクリックします。

  3. [テンプレート] の一覧で、[セットアップ プロジェクト] または [セットアップ ウィザード] をクリックします ([セットアップ ウィザード] を選択すると、作成される Windows インストーラ セットアップ プロジェクトの初期構成をガイドするウィザードが表示されます)。

  4. 新しい Windows インストーラ プロジェクトを右クリックし、[追加]、[ファイル] の順にクリックして、次のファイルを選択します。

    1. WordGameWMC.mcl

    2. WordGameWMC.exe

    3. WordGameWMC.exe.manifest

    4. WordGameWMC.xbap

    5. WordList.txt

    6. Keyboard.dll

  5. [ファイル システム] タブで、[ユーザーのデスクトップ] をクリックします。

  6. ファイルの一覧を右クリックし、[Create Shortcut to User's Desktop] をクリックします。

  7. [アプリケーション フォルダ]、[WordGameWMC.mcl] の順にクリックします。

  8. Windows インストーラ プロジェクトをリビルドします。

Windows インストーラ プロジェクトがビルドされると、ビルド出力フォルダに .msi ファイルが生成されます。このファイルをクライアント コンピュータにコピーして実行すると、アプリケーションがインストールされます。既定のインストールでは、次の形式に従ってフォルダが作成されます。

c:\program files\CompanyName\ApplicationName\Application Files

Windows インストーラ プロジェクトの構成の際に選択したすべてのファイルが、Windows インストーラ プロジェクトによって選択された依存アセンブリと共にこのフォルダにコピーされます。

WordGameWMC.mcl へのショートカット アイコンもデスクトップに作成されます。これをダブルクリックまたは参照して、WMC 内にアプリケーションを起動できます。

Aa970447.alert_note(ja-jp,VS.90).gifメモ :

生成される .mcl ファイルに追加される .xbap ファイルへのパスがインストールに対して正確になるようにするには、アプリケーション自体のプロジェクト ファイルを手動で更新する必要があります。

このインストールは、WMC 用 WPF アプリケーションの Windows インストーラを作成する際の基本を理解するためのデモです。

実際の WMC 用 WPF アプリケーションでは、別のインストール方法を使用する必要があります。

第 1 に、実際の Web サーバーでホストされる WPF アプリケーションへのリンクを含む HTML ファイルをインストールする必要があります。アプリケーションを Web サーバーでホストすると、アプリケーションの新しいバージョンを作成し、それを公開して、クライアント コンピュータにダウンロードされるようにすることができます。ユーザーがアプリケーションを再インストールする必要はありません。

第 2 に、.mcl ファイルは使用しないようにする必要があります。代わりに、WMCAPI の MediaCenter.RegisterApplication を呼び出す Windows インストーラを作成するか、コマンド ライン ユーティリティの RegisterMceApp.exe を実行します。詳細については、WMC SDK を参照してください。

参照

概念

Windows Presentation Foundation XAML ブラウザ アプリケーションの概要

その他の技術情報

Windows メディア センター ソフトウェア開発キット