Assets
Assetsフォルダーには、画像やメディアファイルなどのファイルを配置します。初期状態では以下のファイルが配置されています。
- Logo.gif
- SmallLogo.gif
- SplashScreen.gif
- StoreLogo.gif
Logo.gif
スタート画面のタイルに用いる正方形の画像です(150×150ピクセル)。
SmallLogo.gif
アプリ一覧、アンインストール時などに利用される正方形画像です(30×30ピクセル)。
SplashScreen.gif
アプリ起動時に表示される、スプラッシュスクリーンに利用される画像です(620×300ピクセル)。
StoreLogo.gif
アプリの配布先のWindowsストアで利用される画像です(50×50ピクセル)。この画像をデフォルトのまま提出するアプリケーションがたまにあるので注意してください。
Common
プロジェクトや追加する項目に応じて、必要なクラスやリソースファイルが配置されるフォルダです。「Common」フォルダには以下のファイルがあります。
- StandardStyles.xaml
なお、「新しいアプリケーション」プロジェクトでは「Common」フォルダに配置されるファイルはスタイルを定義したファイル1つですが、この後紹介するプロジェクトでは複数のファイルが配置されます。
StandardStyles.xaml
アプリケーションバーのボタンスタイルなど、標準的なスタイルが定義されたリソースファイルです。
Windowsストアアプリケーションの開発環境がRTM(工場出荷版)になったとき、「StandardStyles.xaml」の一部スタイルがデフォルトでコメントアウトになりました。
アプリケーションバーのボタンスタイルなどは必要に応じてコメントアウトを外す必要があります。無駄なコードを含めないためかと考えますが、そんなに効果あるのかなとも思います。
App.xaml
アプリケーションの起動時に読み込まれるエントリーポイントファイルです。「App.xaml」で共通のリソースなどを読み込んでおくと、すべてのページでリソースが利用できて便利です。初期状態では、前述の「StandardStyles.xaml」がリソースとして読み込まれています。
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!--
プラットフォームの外観の共通の要素を定義するスタイル
Visual Studio プロジェクトおよびアイテム テンプレートで必要です
-->
<ResourceDictionary Source="Common/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
App.xaml.cs
「App.xaml.cs」では、アプリケーション起動時の動作(OnLaunchedメソッド)と、アプリケーション終了時の動作(OnSuspending)を定義します。OnLaunchedメソッドの以下のコードで、最初に表示するページを指定しています。
// ナビゲーション スタックが復元されていない場合、最初のページに移動します。
// このとき、必要な情報をナビゲーション パラメーターとして渡して、新しいページを
// 構成します
if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
{
throw new Exception("Failed to create initial page");
}
これは最初に表示するページが次で述べる「MainPage」であるという指定です。
ページからページの移動は「rootFrame.Navigate(typeof(ページ名))」という形で行います。rootFrameはFrameクラスのインスタンスで、これから紹介する各ページクラスからも「this.Frame」という書式で呼び出してページ遷移を行うことができます。
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
// サンプル、通常はこんなところでページ遷移はしない
this.Frame.Navigate(typeof(ページ名));
}
アプリケーションの起動時は通常OnLaunchedイベントハンドラーが呼び出されますが、検索チャームから起動した場合などは別のイベントハンドラーが呼び出されることがあります。
以下にいくつかのイベントハンドラーを紹介します。
OnFileActivated
ファイルの関連付け対象としてアプリケーションが起動された場合に呼び出されるイベントハンドラーです。
OnSearchActivated
検索コントラクトから起動された場合に呼び出されるイベントハンドラーです。
OnShareTargetActivated
共有コントラクトから起動された場合に呼び出されるイベントハンドラーです。
主にコントラクトから起動される場合に異なるイベントハンドラーが呼びだされます(コントラクトについては後の回で紹介予定)。
App.xaml.csのAppクラスはApplicationクラスを継承しています。
Applicationクラスの定義はソースコードのクラス名を右クリック後に「定義へ移動」で確認できます。
MainPage.xaml
先述の「App.xaml.cs」でスタートページに指定されていたページです。
ページを表すファイルは、見た目を定義するXAMLで書かれた「ページ名.xaml」と、ロジックをC#で記述する「ページ名.xaml.cs」の2つがセットになっています。後者のC#ファイルを「コードビハインド」と呼ぶこともあります。
MainPage.xamlには以下のタグが記述されています。
Page
一つのページを表すページクラスです。
MainPage.xamlを含めページクラスは最上位にPageクラス(もしくはPageクラスを継承したクラス)を持ちます。
Grid
レイアウトを表現するためのコントロールです。
Gridは格子状にレイアウトを組むことが可能ですが、「新しいプロジェクト」では何も定義されていないGridコントロールが配置されているだけです。
「MainPage.xaml」はGridコントロールというレイアウト用のコントロールが配置されただけのシンプルな構成です。ここからコントロールを用いて見た目を整えていきます。
MainPage.xaml.cs
「MainPage.xaml」のコードビハインドです。
Pageクラスを継承しており、AppBar(アプリケーションバー)やFrame(ページ制御の親となるフレーム)をプロパティに持ちます。
「MainPage.xaml.cs」もコンポーネントの初期化処理以外は何も書かれていません。真っ白な状態から開発を始めることができます。
Package.appxmanifest
アプリケーションの機能、コントラクトの宣言、アプリケーションの情報などを記述するファイルです。Windowsストアアプリケーションでは一部の機能の利用に「Package.appxmanifest」での宣言が必要なものがあります。
アプリ名_TemporaryKey.pfx
認証情報ファイルです。このファイルを開いて編集することはありません。
まとめ
今回はWindowsストアアプリケーションの概要と一番シンプルなプロジェクト「新しいプロジェクト」の説明を行いました。
ストアアプリケーションの開発を始める第一歩の一助となれば幸いです。
次回はデフォルトのプロジェクトの残り2つ「分割アプリケーション」「グリッドアプリケーション」を解説します。「データバィンディング」や「VisualStateManager」などの概念は開発に欠かせない概念なのでぜひマスターしておきましょう。
12月15日に発売予定の著書『基礎から学ぶ Windowsストアアプリ開発』でも、Windowsストアアプリケーション開発に役立つ情報を詰め込んでいます。ぜひ本連載と併せてお買い求めください!


