Visual StudioのXAMLデザイナーの[デバイス]ウィンドウの[記録モード]を[空白のページ]でも有効にする方法

 Visual Studioのメニュー[デザイン]から開くことができる[デバイス]ウィンドウには[記録モード]というチェックボックスがあり、これを使用することでXAMLデザイナー上からフィル、スナップといったビューの表示状態(VisualState)を編集することができます。このことは以下の記事でも説明されています。

ビューの切り替えを実装するには?[Win 8]:WinRT/Metro TIPS - @IT



 しかし、[新しい項目の追加]ダイアログから追加できる[空白のページ]、もしくは[新しいプロジェクト]ダイアログで[新しいアプリケーション]を選択した場合に生成される「MainPage.xaml」では、[記録モード]のチェックボックスがDisabledとなり使用することができません。これらのページで[記録モード]のチェックボックスを有効にするためには、以下の2つの条件を満たすことが必要です。

  1. PageクラスではなくLayoutAwarePageクラスを継承する。
  2. LayoutAwarePage要素の直下のGrid要素内に、ApplicationViewStatesという名称のVisualStateGroupを作り、その中に設定したいビューのVisualStateを作成する。



1.の条件を満たすために手っ取り早いのは、[新しい項目の追加]ダイアログから[空白のページ]以外のいずれかのページを追加し、CommonフォルダにLayoutAwarePageクラスなどのファイルをVisual Studioに自動生成させる方法です。ここで最低限必要なのは、「LayoutAwarePage」と「SuspensionManager」の2つです。自動生成した後は、追加したページを削除しても当然ながらCommonフォルダのファイルは消えません。その後、XAMLとコードビハインドの両方のPageをLayoutAwarePageへと書き換えます。
2.の条件を満たすための最低限のXAMLコード(たとえばSnappedの場合)以下のようなものです。










各ビューのVisualStateの名称は以下の通りです。

ビュー VisuaStateの名称
Landscape FullScreenLandscape
Filled Filled
Snapped Snapped
Portrait FullScreenPortrait