ListView Grow вместо Scroll - PullRequest
       0

ListView Grow вместо Scroll

1 голос
/ 04 марта 2011

Есть ли способ (без кода) сделать так, чтобы WPF ListView увеличивался до ширины или высоты его содержимого вместо прокрутки?Вроде как StackPanel только по-прежнему можно выбрать.

Например, если у меня есть:

<ScrollViewer>
  <StackPanel>
    <ListView ItemsSource="{Binding Rail1}">
      <ListView.ItemsPanel>
        <ItemsPanelTemplate>
          <StackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
      </ListView.ItemsPanel>
    </ListView>
    <ListView ItemsSource="{Binding Rail2}">
      <ListView.ItemsPanel>
        <ItemsPanelTemplate>
          <StackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
      </ListView.ItemsPanel>
    </ListView>
  </StackPanel>
</ScrollViewer>

, ScrollViewer не показывает горизонтальную полосу прокрутки, а ListViews.

Ответы [ 2 ]

1 голос
/ 04 марта 2011

Это зависит от контейнера. Добавьте ListView к ScrollViewer - все должно получиться.

<ScrollViewer HorizontalScrollBarVisibility="Auto">
    <StackPanel>
        <ListView ItemsSource="{Binding Rail1}" > 
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>
        <ListView ItemsSource="{Binding Rail2}" >
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>
    </StackPanel>
</ScrollViewer>
1 голос
/ 04 марта 2011

Это зависит от его контейнера, но если вы установите для свойства HorizontalAlignment значение "Stretch", и контейнер ListView разрешит его, он должен изменить свой размер по своему содержимому.

* Редактировать ** Если вы хотите, чтобы оба ListView не прокручивали, сделайте что-то вроде:

<ScrollViewer>
   <DockPanel>
      <ListView ItemsSource="{Binding Rail1}" DockPanel.Dock="Top" />
      <ListView ItemsSource="{Binding Rail2}" DockPanel.Dock="Top" />
   </DockPanel>
</ScrollViewer>

Я думаю, что это даст вам то, что вы хотите.

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