TOC

This article is currently in the process of being translated into Japanese (~93% done).

WPFアプリケーション:

The Window

WPFアプリケーションを作るとき、一番最初に出てくるのがWindowクラスです。それは標準のボーダー、タイトルバー、最大化・最小化・クローズボタン機能を持ったウインドウの雛形です。WPFのウインドウはルートに<Window>要素があるXAML(.xaml)ファイルと、コードビハインドファイル(.cs)の組み合わせです。もしVisual Studio(Express)で新しいWPFアプリケーションを作ると、デフォルトウインドウが作成され、以下のようなものになります。

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>

    </Grid>
</Window>

x:class属性はXAMLファイルにどのクラスを使うのか指示します。このケースではVSが生成したWindow1クラスです。それはVSのプロジェクトツリーの中にXAMLファイルの子ノードとして表示されていて、以下のようなものになります:

using System;
using System.Windows;
using System.Windows.Controls;
//…more using statements

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}

Window1はpartialとして定義されています。これは実行時にXAMLファイルと結合して完全なウィンドウを作成するからです。これは実質的にはInitializeComponent()の呼び出しが行うものなので、完全なウィンドウを起動時し実行するために必要です。

XAMLファイルに戻れば、Window要素にはウィンドウのタイトル(タイトルバーに表示されます)を定義するTitle属性や幅や高さの興味深い属性があります。また、いくつかの名前空間の定義もあります。これらはXAMLの章で議論します。

Visual Studioはウインドウの内部にGridコントロールを作っています。GridはWPFのパネルの一つです。どんなパネルやコントロールでもいいのですが、ウィンドウは子コントロールを1個しか持てないので、複数の子コントロールを持つことが出来るようになるパネルを持つのは良い選択です。このチュートリアルの後半でWPFの大変重要な種々のタイプのパネルを詳しく調べます。

重要なウィンドウの属性

WPFウィンドウクラスはアプリケーションウィンドウの外観や動作をコントロールするための数多くの属性を持っています。もっとも興味深いものの一部を次にあげます:

Icon - 通常ウィンドウの左上隅のウィンドウタイトルの左側にあるウィンドウアイコンを定義できます。

ResizeMode - ユーザーがウィンドウをリサイズできるか、どのようにリサイズするかをコントロールします。デフォルトはCanResizeで、ユーザーが最大化・最小化ボタンやウインドウ端をドラッグしてウインドウをリサイズすることを許可します。CanMinimizeはウィンドウを最小化することは可能ですが、最大化やマウスドラッグによる大きさ変更は出来ません。NoResizeは最も制限があり、最大化・最小化ボタンは削除され、マウスドラッグで大きさの変更もできません。

ShowInTaskbar - デフォルトはtrueで、falseに設定するとウインドウはタスクバーに表示されなくなります。補助的なウインドウやトレイに最小化されるアプリケーションに使います。

SizeToContent - 表示するコンテンツに合わせて自動的にウィンドウをリサイズするかどうか決めます。デフォルトはManualで、ウィンドウは自動的にリサイズされません。他のオプションはWidth、Height、WidthAndHeightで、これらはウィンドウの幅、高さ、その両方をそれぞれ自動的に調整します。

Topmost - デフォルトはfalseで、trueにするとウィンドウを最小化しない限りウィンドウを最前面に表示します。特別な状況でのみ役立ちます。

WindowStartupLocation - ウィンドウの最初の表示位置を決めます。デフォルトはManualでウィンドウのTopとLeftプロパティによってウインドウが配置されます。他のオプションではCenterOwnerでオーナーウィンドウの中央に配置、CenterScreenでスクリーンの中央に配置します。

WindowState - ウインドウの最初の状態を決めます。Normal、Maximized、Minimizedのどれかです。デフォルトはNormalで、ウィンドウを最大化または最小化で始める場合を除いて、Normalを使います。

他にもたくさんの属性があるので、自分自身の目で確かめてから次の章へ進んでください。