さて、今までWPFのことをつらつらと書いてきたけど、1つ大きな前提があった。
その前提は、Windowsアプリケーションであること。
んで、1つ前のWPF関係のエントリでNavigation Applicationもあるよ~ってこと書いたのでNavigation Applicationもやってみようと思う。
とりあえず、軽く見た感じだとPageFunction萌えです。
それについてはいずれ書くとして、とりあえず基本から。Hello worldに毛が生えた位まで書いてみようと思う。因みに、会社の休憩時間で書いてしまおうと思ってるので開発環境はVisual C# 2008 Express Edition SP1で、画像のアップロードが出来ないのでテキストのみになります。
Navigation Applicationって
動きとしてはWebアプリに近い。Webアプリっぽく戻るや進むボタンがあるタイプで、基本的にはウィンドウが1つあって、そこがパラパラ紙芝居するといった動きをするアプリケーションです。
まぁ普通にウィンドウ出したりも出来るから、厳密に言うと違うけど…。
肝心の作り方からやってみようと思う。Windowアプリケーションの最初は、全てC#のコードで書いたのでNavigation Applicationも全てコードで書いてみようと思う。
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
namespace WpfPageNavi
{
// 簡単なアプリケーション
class MyApplication : Application
{
public MyApplication()
{
this.Startup += new StartupEventHandler(MyApplication_Startup);
}
void MyApplication_Startup(object sender, StartupEventArgs e)
{
// Navigation ApplicationはNavigationWindowを使う
var window = new NavigationWindow();
// 開始ページにナビゲーション
window.Navigate(new MyPage());
// 表示!!
window.Show();
}
[STAThread]
static void Main(string[] args)
{
// アプリ走れ!
new MyApplication().Run();
}
}
// 簡単なページ
// こんにちはページと表示するだけ
class MyPage : Page
{
public MyPage()
{
var text = new TextBlock
{
Text = "こんにちはページ"
};
this.Content = text;
}
}
}
あぁ…実行結果はりたいorz
とりあえず、NavigationWindowを使ってる所とPageクラスを継承したMyPageを使ってる所がポイント。
これで、進むボタンや戻るボタンのついたウィンドウに、"こんにちはページ"と表示されたウィンドウが出てくる。
こいつが基本形なので、よく覚えておこう。
帰ったら続きを書いて、ちゃんと画像も載せる!!という気力があるといいな。