かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

PageクラスってUserControlだったんだね・・・

Windows Developer Daysに参加してきてWindows 8熱が高まったと同時に極度の疲労のため木曜日と金曜日も疲れが抜けず、土曜日に至っては、犬の散歩とごはん以外ず〜〜〜〜っと寝てた今日この頃です。土曜日はPCに向かう気力すら出なかったくらい!日曜日は、なんとか回復傾向にある感じです。

そんな近況は置いといて、Windows 8 CPを普段使いのPCにして(普段やってるゲームも普通に動いてびっくり・・・)Visual Studio 11をいじってる今日この頃なんですが、Windows 8には守るべきデザインの原則があったりするので、それならページのスタイル定義して、その中でTemplate定義して、確保しなきゃいけない余白とかアプリケーションのタイトルとか戻るボタンとかを置いておけばいいじゃ〜んと思ってやってみたのですが、Windows 8で画面にあたるPageクラスってUserControlを継承して作られてるみたいです・・・。定義をのぞいてみるとこんな感じ。

using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Navigation;

namespace Windows.UI.Xaml.Controls
{
    public class Page : UserControl
    {
        public Page();

        public AppBar BottomAppBar { get; set; }
        public static DependencyProperty BottomAppBarProperty { get; }
        public Frame Frame { get; }
        public static DependencyProperty FrameProperty { get; }
        public NavigationCacheMode NavigationCacheMode { get; set; }
        public AppBar TopAppBar { get; set; }
        public static DependencyProperty TopAppBarProperty { get; }

        protected virtual void OnNavigatedFrom(NavigationEventArgs e);
        protected virtual void OnNavigatedTo(NavigationEventArgs e);
        protected virtual void OnNavigatingFrom(NavigatingCancelEventArgs e);
    }
}

UserControlだと何ができないってTemplateサポートしてないんですよね・・・。ちょっとがっくし。ということで悶々とし直す今日この頃でした。