概要
レイアウトで最低限覚えておくべきGrid
, StackPanel
, Margin
, Padding
について詳しく見ていきます。
Grid
は、行と列を定義してコントロールを配置する土台として使うものです。
HTML
のTable
に似ています。
プロジェクトの作成
新しいプロジェクトの作成でWPFアプリケーション
を、プロジェクト名:LayoutSample
、フレームワーク:.NET 6.0
で作成してください。
Gridで行・列作成
まずは以下のように行、列を作っていきましょう。
列分割
マウス操作で分割
デザイナーでGrid
を選択し、画面イメージのタイトルバーの付近にマウスカーソルを移動すると、+
マークが付きます。
そこでクリックしてください。
そうすると列(カラム)を分割できます。
続いてもう1つ列を分割してください。
これで3列になりました。
コレクションエディターで分割
別のやり方でもやってみます。
Ctrl
キーを押しながらZ
を2回押し、列分割前の状態に戻します。
そして、Grid
が選択された状態で💡を選択し、ColumnDefinitions
の横にある...
ボタンを押します。
追加
ボタンを3回押します。
ColumnDefinition
が3つ追加されたらOK
ボタンを押します。
3列になりました。
行分割
次は行を分割します。
マウス操作でやる場合は画面イメージの左端付近をクリックします。
💡でやる場合は、RowDefinitions
の...
ボタンを押します。
追加
を2回押して、OK
を押します。
2行になりました。
XAMLのGrid.RowDefinitions
の中のRowDefinition
の数が行数です。2つあるので2行ということです。
Grid.ColumnDefinitions
の中のColumnDefinition
の数が列(カラム)数です。3つあるので3列ということです。
Gridの各セルにコントロール配置
ツールボックスからEllipse
をGrid
の左上のセルの真ん中あたりに(セルの中に納まるよう)ドラッグ&ドロップします。
配置されたEllipse
を右クリックし、レイアウト
> すべてリセット
を選択します。
ツールボックスでEllipse
をクリックし、Grid
の1行目の中で2列目~3列目を含むよう、対角線上にドラッグします。
レイアウトですべてリセットをします。
ツールボックスでBorder
を3つ、Grid
の2行目のそれぞれの列にドラッグ&ドロップします。
XAMLで1つ目のBorder
のBorderBrush
の値、Black
部分をダブルクリックして選択状態にし、Ctrl
キーを押しながらSpace
キーを押してください。
色の候補が出てくるのでBlue
を選択してTAB
かEnter
で確定してください。
BorderThickness
の値を5
に書き換えてください。
2つ目のBorder
はBorderBrush
にOrange
を設定してください。
色の候補が出ているときにor
まで入力すればOrange
が選択状態になるので確定してください。
3つ目のBorder
の色はGreen
にしてください。
BorderThickness
は3つとも5
にしてください。
列(カラム)はGrid.Column
で指定します。左から0始まりです。
行はGrid.Row
で指定します。上から0始まりです。
既定値の0(Grid.Column="0"
, Grid.Row="0"
)は省略可能です。
列のセル結合はGrid.ColumnSpan
、行のセル結合はGrid.RowSpan
です。
1行(Row=0
)・2列目(Column=1
)のEllipse
が2列分(ColumnSpan=2
)、セル結合しています。