WrapPanel не переносится в WPF ListView

Я использую ListView с ItemTemplate как это:


    
        
            
            
    

Но Покрытия не заполняют экран как окна Windows Explorer.

Как я делаю это? Они просто сложены вертикально в моей версии.

alt text
(источник: functionx.com)

48
задан Glorfindel 11 July 2019 в 16:04
поделиться

1 ответ

Попробуйте использовать WrapPanel в качестве панели элементов ListView и отключите горизонтальную полосу прокрутки:

<ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled">
  <ListView.ItemsPanel>
    <ItemsPanelTemplate>
      <WrapPanel Orientation="Horizontal" />
    </ItemsPanelTemplate>
  </ListView.ItemsPanel>
  ...
</ListView>

Обновление: itowlson предлагает это объяснение, чтобы прояснить ситуацию: ItemTemplate определяет, как каждый элемент должен быть отрисован. Это не влияет на расположение элементов. ItemsPanel, напротив, определяет макет.

Кроме того, вы можете захотеть, чтобы все элементы отображались одинакового размера. Вы можете узнать, как это сделать, из этой статьи: http://joshsmithonwpf.wordpress.com/2008/09/06/synchronizing-the-width-of-elements-in-an-itemscontrol/

113
ответ дан 26 November 2019 в 18:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: