ソースコードを覗いてみよう:起動時のコード
プロジェクトの構成が掴めてきたら、コードを読んでいきましょう。好きなところから読んでいけばいいのですが、ここでは起動時に実行されるコードを紹介します。
Appクラス
UWPアプリでは、起動時にAppクラス(Calculatorプロジェクト)のOnLaunchedメソッドかOnActivatedメソッドが最初に呼び出されます(詳しくは「Handle app activation」を参照してください)。
- OnLaunchedメソッド:スタートメニューのタイルをクリックしたときなど、通常に起動されたときに呼び出される
-
OnActivatedメソッド:プロトコルアクティベーションなど、他のアプリから起動されたときに呼び出される。
なお、プロトコルアクティベーションとは、アプリが定めたプロトコルを使ってアプリを起動すること。電卓アプリの場合は、「calculator:」というプロトコル。[ファイル名を指定して実行]で「calculator:」と入力すると、電卓アプリが起動します。
電卓アプリでは、OnLaunchedメソッドもOnActivatedメソッドも、その中でOnAppLaunchメソッドを呼び出しています(次の画像、行番号227)。起動時の主な処理は、この共通に呼び出されるOnAppLaunchメソッドの中に書かれています。
ちなみに、上の画像の下半分にあるように、[呼び出し階層]ペインがメソッドをたどるときに便利なことがあります。この[呼び出し階層]ペインは、コードエディタでメソッド名にカーソルを置いて、右クリックで[呼び出し階層の表示]を選ぶと表示されます。
OnAppLaunchメソッドは、C#/VBでUWPアプリを書いている人でもぎょっとするかもしれません。複雑になっている主な理由は、マルチウインドウ対応のためです。マルチウインドウの機能は、Microsoftのドキュメントでは「複数のビュー(multiple views)」と呼んでいます。詳しくは「アプリの複数のビューの表示」をご覧ください。
普通に起動した場合、OnAppLaunchメソッドではMainPageクラスを表示します。次の画像は、MainPageクラスを表示しているコードの部分です。画面を切り替えるには、このようにNavigateメソッドを使います(下の画像の行番号294)。