Панель «Маржинальный макет», как в Windows 7 Explorer ListView - PullRequest
2 голосов
/ 30 августа 2011

enter image description here

В Windows Explorer в Windows 7 элементы в ListView имеют гибкое поле. Так что все иконки вписываются в область ListView.

Как я могу сделать панель, которая реализована так? WrapPanel больше всего подходит к этому, он не безупречен - WrapPanel не подгоняет элементы к его границам через корректировку поля.

1 Ответ

2 голосов
/ 30 августа 2011

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

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

ItemTemplate указывает, как должен отображаться каждый элемент.Это не влияет на расположение предметов.ItemsPanel, напротив, определяет макет.

Кроме того, вы можете захотеть, чтобы все элементы отображались одинакового размера.Вы можете узнать, как это сделать из этой статьи:

http://joshsmithonwpf.wordpress.com/2008/09/06/synchronizing-the-width-of-elements-in-an-itemscontrol/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...