WPF: Программное добавление ListViewItems, которые расширяются до полной ширины содержащего их ListView

Я определил собственный элемент управления ListViewItem в XAML, который мы назовем Item.xaml. Эти пользовательские элементы добавляются в представление списка с помощью ListView.Items.Add().

Как я могу добавить эти элементы, чтобы они расширялись по горизонтали и занимали всю ширину содержащего их ListView? В настоящее время они всегда сохраняют свою первоначальную ширину.


person anthony    schedule 25.04.2011    source источник


Ответы (2)


Ответ ChrisWue, похоже, сработал, но затем я заметил, что если у меня было достаточно ListViewItems, чтобы заставить список прокручиваться по горизонтали, элементы, которые были невидимы до прокрутки вниз, не растягивались по горизонтали.

Я нашел эту ветку MSDN, который дает правильный подход:

<ListView Name="ListView" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
  <!-- Stretch the contents to match the columns' width: -->
  <ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
      <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
  </ListView.ItemContainerStyle>
  ...
person anthony    schedule 05.05.2011
comment
Забудьте о привязке к ширине списка (рекомендуемый подход везде), ЭТО то, что работает. - person rikkit; 08.08.2012

У ListView есть HorizontalContentAlignment, который нужно установить на Stretch:

<ListView HorizontalContentAlignment="Stretch" ... >
person ChrisWue    schedule 25.04.2011