日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。WinRT先日は、軽く作っただけですが、ちょっと改良してみようと思います。かずきのBlog@hatenaページのタイトルをPageTemplateコントロールのプロパティで設定できるようにする昨日の段階ではXAML内で以下のようにDataContextにAppNameというプロパティがあるという前提でハードコーディングしていました。これだと、ちょっと自由度が低すぎるのでPageTemplateにPageTtleという名前のプロパティを用意して、それを通して設定できるようにしたいと思います。バインドできたほうがMVVM的にも自由がききそうなので依存関係プロパティとしてPageTemplateプロパティに定義します。PropertyMetadata(null));そして、Generic.xamlのページタイトルのTextBlockを以下のように書き換えます。Margin="0,0,30,40"/>こうすると、このPageTemplateコントロールを使う側で好きなようにXAMLから(またはPageTitleプロパティと何かをバインドすることでViewModelから)設定出来るようになります。</local:PageTemplate></Page>デザイナ上でも表示を確認できます。戻るボタンを押したときの挙動もう1つコントロール内にハードコーディングされているものとして、戻るボタンのコマンドがあります。ElementName=pageRoot}"これもPageTitleと同様に外部から指定できるようにするのがスマートでしょう。いうことで、PageTemplateクラスにICommand型のGoBackCommandプロパティを作成します。PropertyMetadata(null));Generic.xamlの中で戻るボタンをTemplateBindingを使ってバインドするように修正します。GoBackCommand}"これで、外部から戻るボタンの挙動を差し替えることができます。NavigationHelperクラスに依存しなくなりました。NavigationHelperクラスのGoBackCommandをページからBindingすれば、従来通りの動きをさせることも可能です。今回の例では、タイトルから下のコンテンツ部分がページ固有のカスタマイズ領域ですが場合によっては、ヘッダーの一部の領域もページごとに固有のコンテンツを置きたいということもあると思います。いうときは、以下のようにすればOKです。PageTemplateクラスにカスタマイズコンテンツを格納するためのプロパティと、それの表示を定義するDataTemplate型のプロパティを定義してやります。今回はフッター部に一部カスタマイズ領域を設けるという感じで以下のような名前のプロパティを定義しました。PropertyMetadata(null));Generic.xamlには、GridのRowを1行たして、そこにBorderあたりでくるんだContentControlを置いて上記で作成したプロパティをContentとContentTemplateにバインドします。</Grid></ControlTemplate>FooterContentプロパティに適当な値をつっこんだらそれがそのまま表示されますし、FooterContentTemplateをデザイナから編集して、ぽとぺたでカスタマイズすることもできます。</Grid></local:PageTemplate>当然ですが実行してみてもデザイナでデザインした通りに画面の下にボタンが出ています。C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。Blogの内容は個人の見解であり、所属する企業を代表するものではありません。)はてなブログをはじめよう!okazukiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。