WPF コンテナー コントロールの概要
Grid、Canvas、StackPanel などのコンテナー コントロールを使用すると、組み込みレイアウト機能を利用して各種の有用なユーザー インターフェイスを迅速にデザインできます。 各コンテナー コントロールは、コンテナー内のコントロールのレイアウトと配置を制御し、配置に役立つプロパティを提供します。 ここでは、各種コンテナー コントロールの概要を示し、それらがコンテナー内のコントロールのレイアウトにどのように作用するのかについて説明します。
レイアウトの丸め
コンテナー コントロールの UseLayoutRounding プロパティを設定して、Measure および Arrange によって渡されるときに計算される整数以外のピクセル値がいつ整数のピクセル値に丸められるかを指定します。 このプロパティは、子コントロールによって継承されます。
グリッド
最も一般的なコンテナー コントロールは、Grid コントロールです。 既定では、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 クラスには、画面上の同じスペースを共有する複数のタブ項目が含まれます。 WPF デザイナー を使用することで、タブ項目を追加および削除できます。 詳細については、「方法 : TabControl にタブ項目を追加する」を参照してください。