【余録】Windows Forms vs. WPF 1/3

Previous|1/3|Next
C#.use(better, IronPython=”WPF”) 記事一覧
【余録】Windows Forms vs. WPF

《著》伊藤うさぎ《監修》小泉ひよ子とタマゴ倶楽部
♪初出:2008/03/16

ここでは、Windows Forms でアプリケーションを作成した経験のある読者のために、WPF との違いを示す事例を紹介します。Windows Forms から WPF へと移行するときに、その経験が無駄にはならないことを、直感していただければ幸いです。

サンプルコードを実行するには


サンプルファイルを含むフォルダー easyWPF をダウンロードしたら、これを(前にインストールした)フォルダー IronPython-1.1.1 と肩を並べて配置します。任意のソースモジュール .py を、実行モジュール ipyw.exe までドラッグ&ドロップすると、アプリケーションが起動されて、さまざまなウィンドウが開きます。

Windows Forms を使って部品を配置する

Windows Forms では、コントロール部品(Button/TextBox)を生成するためにコード(IronPython)を記述する必要があります。

button = Button(
Text="Are you happy?",
)
textBox = TextBox(
Size=Size(200, 50),
Location=Point(0, 30),
)

と同時に、各部品のプロパティー(ボタンに表示する文字列など)を設定します。次に、ウィンドウ(Form)を生成します。

form = Form(
Text="(^_^)",
Width=220, Height=100,
)
for e in button, textBox:
form.Controls.Add(e)
form.Show()

と同時に、タイトルに表示するテキスト文字列などを設定します。そして、このウィンドウの中にコントロール部品を配置します。

WPF を使って部品を配置する

WPF では、ウィンドウ(Window)の中に配置するコントロール部品を生成したり、そのプロパティーを設定するのに、マークアップXAML)を利用できます。

win = Window(
Title="(^_^)",
Width=220, Height=100,
)
win.Content = LoadXaml(xaml)
win.Show()

すると、マークアップを用意するだけで、コードを記述する手間が省けます。しかも、マークアップは、他の .NET プログラミング言語C# など)でも再利用が可能です。


Previous|1/3|Next