PowerShellはシェル環境、バッチ処理、CUIで一撃!みたいな感じで楽しんでます。 さて、ではC#は?と言われると、ものすごい興味あるけどなかなか学習が進まない感じでした。 さて、ここでかずき先生が俺得な記事を年始からされてて、もうやるしかないですね! せっかくすばらしい記事なので、順を追ってWPFデビューしてみたいと思います。 今後、このタイトルは記事を追いかけつつの奮闘記になるかも…。 ====
環境
以下の環境です。 Visual Studio 2010ならProが有るのですが……2012はちょっと…ぐぬぬ。
OS : Windows 8 Pro x64 JPN IDE : Visual Studio 2012 Express
Visual Studio 2012でWPFアプリケーションを新規作成
基本ですが一応。
- VS2012を立ち上げます。
- ツールバーからファイルを選択
- 新しいプロジェクトを選択
- テンプレートからC#を選択
- WPFアプリケーションを選択
- 名前と場所を選択してOK
Hello World
ファイル構成
ほむほむ。 かずき先生の示されたとおりです。 これは楽しいですねー。WindowsFormよりわくわくですー。
Appクラス
なるほど…。アプリケーション全体なのか…ふむ。
App.xamlは、以下のような内容のXAMLで書かれたファイルになります。XAMLは、WPFでは主にGUIを記述するための言語として使われますがApp.xamlでは、GUIではなくアプリケーション全体を制御するクラスを定義しています。
x:Class="HelloWorld.App"だから、App.XamlのペアのApp.xaml.csにあるnamespace HelloWorldのApplicationを継承したAppを示すということかなー。
x:Classは、このXAMLと対になるコードビハインドのクラスを表しています。HelloWorld.Appクラスは、App.xaml.csの中に以下のように定義されています。
ふむふむ。初期起動時のxaml指定方法ですね…。
App.xamlで重要な点は、StartupUri属性でMainWindow.xamlを指定している点です。StartupUriで指定したウィンドウを起動時に表示するようになっているため、このアプリケーションを実行するとMainWindow.xamlが表示されます。
MainWindow.xaml
GUIデザインってことかー。
MainWindow.xamlは、Windowを定義したXAMLになります。
同じ要領ですね。namespace HelloWorldのWindowを継承したMainWindowがペアだよと。
App.xamlと同様にx:Classという属性でコードビハインドのクラスが指定されています。HelloWorld.MainWindowクラスのコードを以下に示します。
ここはWindowsFormと一緒かー。
コンストラクタで呼び出されているInitializeComponentメソッドは、XAMLで定義された情報を使用するために必須のメソッドです。このメソッドの呼び出しを忘れると、XAMLで定義した情報が使用できなくなるので気を付けてください。
デザイナによる画面の設計
まんまですねー、分かりやすいwww x:Namejは、プロパティの名前が入力するところですね。 Contentは、プロパティのContentが入力するところですね。
イベントハンドラの追加とコードの記述
はい。
作成したボタンをダブルクリックすると、ボタンのクリックイベントが作成されます。プロパティのイベントからもWindows Formアプリと同じ要領でイベントを作成できます。helloWorldButton_Clickというメソッドが作成されるので以下のようにメッセージボックスを表示するコードを追加してください。
コンパイルして実行
デバック無しで実行(Ctrl+F5)して…!!! いよいよ世界よこんにわです
かずき先生ありがとうございます。 明日?今晩?もよろしくお願いします。