【WPF】ListView の列(セル)に左揃え・中央揃え・右揃えを設定する

WPF の ListView で、列(セル)の中身を(下図のように)中央揃えにしたいと思った(デフォルトは左揃え)。

ところが CheckBox の HorizontalAlignment を Center に設定しても中央揃えにならなかったので、ネット検索して調査した。

すると・・・

  • ListView の 1 列目は左揃えにしかできない
  • 1 列目を非表示にして 2 列目から使用するのが手っ取り早い
  • Win32 API を使えば・・・

という記事が目についたので、ちょっとあきらめかけた。

 

が、

引き続き調べていたら、どうやらこれは WPF の話ではなく、Forms の ListView の話らしい。

WPF と Forms のコントロールは名前が同じで挙動が似ているものが多いけれど、実際は挙動が異なるものが多いので紛らわしいんだよね・・・。(この紛らわしさ、何とかならんかったんかい)

しかも今回のケースでは、WPF の ListView も、デフォルトでは列(セル)に指定したアラインメントが適用されないので、Forms の ListView の件と間違いやすい(そんなことない?)。

 

結論を言うと、WPF の ListView の列(セル)にアラインメントを適用するには、その前準備として(ListView に対して)下記の定義が必要とのことです。

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <!-- ListView の列(セル)に左揃え・中央揃え・右揃えを設定するのに必要な定義 -->
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ListView.ItemContainerStyle>

WPF の ListView の場合、これで、各列(セル)に設定したアラインメントが効くようになります。

 

 

 

 

 

購読する
通知を受け取る対象
guest
0 Comments
Inline Feedbacks
View all comments