Windows Phone のテーマ
2013/03/11
対象: Windows Phone 8 | Windows Phone OS 7.1
このトピックでは、Windows Phone のテーマとそれらの実装方法について説明します。
このトピックは、次のセクションで構成されています。
テーマは、開発者が Windows Phone のビジュアル要素をカスタマイズする際に使用する一連のリソースです。テーマによって、コントロールおよび UI 要素がすべての電話で一貫して表示されます。スタイルの観点からデバイスの組み込み UI のルック アンド フィールを維持したアプリを作成できます。テーマによって設定されるスタイルのプロパティには、背景色とアクセント カラーが含まれます。
テーマを使用すると、以下のことができます。
アプリを構築し、テーマのプロパティにコードで直接アクセスする。
アプリのブランド表示要件を満たすために、任意のテーマ プロパティの値を明示的に変更する。
メモ: |
|---|
Windows Phone テーマは、Windows Presentation Foundation (WPF) のテーマとは関連がありません。Windows Phone テーマはデバイスのテーマであり、個別のアプリのテーマではありません。 |
Windows Phone でテーマを使用することの利点は、一貫性と互換性の向上です。実行時にスタイルが必要に応じて調整されるので、色などの一般的なプロパティを調整することなく、既定のコントロール セットを使用できます。アプリケーションが Windows Phone 上で実行されるときには、テーマ システムがテーマに従ってアプリの表示を変更してくれます。アプリ レベルでテーマを上書きすることも可能です。たとえば、アプリを作成している会社が強いブランドを持つ場合は、特定の色を維持したいと考えます。独自のリソースを用意して、テーマの任意のプロパティを上書きすることができます。ただし、テーマを無効にすることはできません。
重要: |
|---|
アプリの開発中は、Windows Phone Store の技術認定要件を考慮することが重要です。テーマに関連した要件については、「技術認定要件」のセクション 5.5 を参照してください。 |
テーマを設定するには、電話のアプリ リストで、[設定] をタップし、[テーマ] をタップします。ユーザーが電話のテーマを選択すると、電話の UI 全体およびすべてのアプリで変更が適用されます。電話のユーザーが異なるテーマを選択した場合、アプリ内でテーマに関連付けられている色のみが変更されます。フォントやコントロールのサイズなど、他の要素はテーマの変更に応じて動的には変更されません。ただし、Windows Phone の他のテーマ リソースを使用すると、フォントやフォント サイズなどのプロパティも変更することができます。
メモ: |
|---|
ユーザーが電話用の異なるテーマを選択したときにアプリが実行されていない場合、次にアプリを起動したときにアプリに新しいテーマの要素が反映されます。 |
次の画像は、異なるテーマが適用されたアプリの UI を示しています。

この画像は、黒と白のオプションが切り替えられる背景を使用する 1 つのアプリを示しています。このアプリは、左から順番に茶色、青 (シアン)、紫 (バイオレット) のアクセント カラーも使用します。
テーマ リソースは、エンド ユーザーが電話で選択したアクセント カラーと背景色に応じて、異なるコントロール カラー、ブラシ、およびスタイルを表示します。これらの違いは、ThemeResources.xaml というテーマ リソース ファイル内で指定されます。アクセントと背景の各組み合わせは別々のリソース ファイルに保存されます。テーマを作成するために使用できるリソースの一覧については、「Windows Phone のテーマ リソース」を参照してください。
テーマ リソース ファイルは、次のパスにあります。
C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Design
アプリに対しては、テーマはリソースとリソース ディクショナリを使用して実装されます。これらのリソースは、アプリの起動時に読み込まれて適用されます。テーマ リソースは、Visual Studio Designer でコントロールのプロパティを設定するか、XAML で {StaticResource} マークアップ拡張機能を使用して指定することができます。後者は、定義済みのリソースへの参照を評価することによって、任意の XAML プロパティ属性の値を指定します。Windows Phone テーマ リソースに関する詳細情報と、それらをアプリ内で構成する方法については、以下のトピックを参照してください。
メモ:
重要: 