本記事のについて
WPF初心者が必ず疑問に思い調べるであろうListBoxのItemの幅をきっちりあわせる方法について書いていこうと思います。
HorizontalContentAlignment
取得またはコントロールの内容の水平方向の配置を設定します。(MSDN)
答えを先に書くと
<ListBox
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"/>
と書くと自動的にItemの幅をきっちりと合わせてくれます。
button等のコントロールの場合はVerticalContentAlignmentは設定する必要はないです。
VerticalContentAlignment
取得またはコントロールの内容の垂直方向の配置を設定します。(MSDN)
画像やBindingした情報等の幅を設定するにはこちらを設定しなければなりません。
メンバー一覧
メンバー名 | 説明 |
---|---|
Fill | 割り当てられた広さを埋めるようにコンテンツのサイズを変更します。 縦横比は維持されません。 |
None | コンテンツの現在のサイズを維持します。 |
Uniform | 割り当てられた広さに収まるようにコンテンツのサイズを変更しますが、元の縦横比が維持されます。 |
UniformToFill | 割り当てられた広さを埋めるようにコンテンツのサイズを変更しますが、元の縦横比が維持されます。 ソース コンテンツの縦横比が対象の四角形の縦横比と異なる場合は、ソース コンテンツが対象の四角形に収まるように切り取られます。 |
まとめ
ListBoxのItemの幅をListBoxの幅にしようと思ったらHorizontalContentAlignmentとVerticalContentAlignmentをStretchにすれば解決します。できない場合は何かwidthやHeigthを設定している可能性があります。