tech.guitarrapc.cóm

Technical updates

WPF4.5入門 その3 「Hello world」をやってみた

PowerShellはシェル環境、バッチ処理、CUIで一撃!みたいな感じで楽しんでます。 さて、ではC#は?と言われると、ものすごい興味あるけどなかなか学習が進まない感じでした。 さて、ここでかずき先生が俺得な記事を年始からされてて、もうやるしかないですね! せっかくすばらしい記事なので、順を追ってWPFデビューしてみたいと思います。 今後、このタイトルは記事を追いかけつつの奮闘記になるかも…。 ====

環境

以下の環境です。 Visual Studio 2010ならProが有るのですが……2012はちょっと…ぐぬぬ。

OS : Windows 8 Pro x64 JPN
IDE : Visual Studio 2012 Express

Visual Studio 2012でWPFアプリケーションを新規作成

基本ですが一応。

  1. VS2012を立ち上げます。
  2. ツールバーからファイルを選択
  3. 新しいプロジェクトを選択
  4. テンプレートからC#を選択
  5. WPFアプリケーションを選択
  6. 名前と場所を選択して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)して…!!! いよいよ世界よこんにわです

 かずき先生ありがとうございます。 明日?今晩?もよろしくお願いします。