WPF コンテナ コントロールの概要
更新 : 2007 年 11 月
Grid、Canvas、StackPanel などのコンテナ コントロールを使用すると、組み込みレイアウト機能を利用して各種の有用なユーザー インターフェイスを迅速にデザインできます。各コンテナ コントロールは、コンテナ内のコントロールのレイアウトと配置を制御し、配置に役立つプロパティを提供します。ここでは、各種コンテナ コントロールの概要を示し、それらがコンテナ内のコントロールのレイアウトにどのように作用するのかについて説明します。
Grid
最も一般的なコンテナ コントロールは、Grid コントロールです。既定では、Windows Presentation Foundation (WPF) Designer for Visual Studio で新しい Window を開くと、必ず Grid コントロールが含まれています。Grid では、コントロールをユーザー定義可能なセルに配置できます。コントロールをセルに配置した場合、Window のサイズを変更してもコントロールの端からセルの端までのマージンは変化しません。マージンの設定方法の詳細については、「方法 : WPF デザイナでコントロールのマージンを設定する」を参照してください。
Grid コントロールは、Window に追加した場合、1 つのセルで構成されます。コードまたは WPF デザイナで、垂直方向または水平方向の行を追加できます。詳細については、「方法 : グリッドに行と列を追加する」を参照してください。
UniformGrid
UniformGrid コントロールでは、コントロールの単純なグリッド レイアウトを指定できます。UniformGrid にコントロールを追加すると、それらが等間隔となるようにグリッド パターンが自動的に調整され、そこにコントロールが配置されます。セルの数はコントロールの数に合わせて調整されます。たとえば、UniformGrid に 4 つのコントロールを追加すると、それらは 4 つのセルから成るグリッドに配置されます。
Canvas
Canvas コントロールは絶対配置をサポートし、含まれているコントロールに最小限の組み込みレイアウト機能を提供します。Canvas を使用すると、含まれているコントロールをパネルのいずれかの隅からのオフセット位置に配置できます。Canvas には、含まれるコントロールに対するプロパティとして、Top、Bottom、Right、および Left の 4 つのプロパティが用意されています。Canvas コントロールに含まれているコントロールでは、水平方向と垂直方向のプロパティを 1 つずつ指定することにより、コントロールを配置するオフセット位置の起点となる隅を指定する必要があります。たとえば、Top と Right に値が指定されたコントロールでは、右上隅からの距離が一定に保たれます。水平方向または垂直方向のプロパティを複数指定すると、それらの値のいずれか 1 つが無視されます。詳細については、「方法 : 絶対配置に基づくレイアウトを構築する」を参照してください。
StackPanel
StackPanel では、コンテナ内のコントロールが Orientation プロパティの値によって垂直方向のスタックまたは水平方向の行に配列されます。StackPanel に多くのコントロールを追加すると、StackPanel の幅に入りきらないコントロールは表示されません。
WrapPanel
WrapPanel は、コントロールが Orientation プロパティの値に基づいてスタックまたは行に配列される点で StackPanel と似ています。WrapPanel は、スタックまたは行への配列に加え、コンテナ内のコントロールの折り返しもサポートしています。したがって、WrapPanel の幅に表示可能な数より多くのコントロールを WrapPanel に追加した場合、1 つのスタックまたは行に入りきらないコントロールは次のスタックまたは行に配置されます。
DockPanel
DockPanel はドッキングをサポートしているため、パネルの端にドッキングする必要のあるツール バーなどのコントロールを簡単に配置できます。DockPanel コントロールには、コンテナ内のコントロールの配置方法を決定する DockStyle プロパティが用意されています。たとえば、DockStyle プロパティが DockStyle.Top に設定されたコントロールは、DockPanel の上端にドッキングされます。DockPanel は、LastChildFill というプロパティも公開します。このプロパティが true の場合、DockPanel に最後に追加された子コントロールでは、自動的に DockStyle プロパティが true に設定されます。
TabControl
TabControl クラスには、画面上の同じスペースを共有する複数のタブ項目が含まれます。Visual Studio 2008 Service Pack 1 以降では、WPF デザイナを使用してタブ項目の追加と削除を行うことができます。詳細については、「方法 : TabControl にタブ項目を追加する」を参照してください。