Как я могу добавить добавить вертикальную ориентацию в ItemsControl, также имея прокрутку? - PullRequest
1 голос
/ 27 сентября 2019

Я создаю дизайн, который динамически добавляет materialdesign:Card внутрь ItemsControl.Мой оригинальный код проекта такой:

<ItemsControl ItemsSource="{Binding Something}" HorizontalAlignment="Left">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <materialDesign:Card>
                ....
            </materialDesign:Card>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Однако мне не понравился вывод, который выглядит следующим образом:

 ----------------------------------------
| [ Card here ]                          |
| [ Card here ]                          |
| [ Card here ]                          |
 ----------------------------------------

Я исследовал добавление вертикальной ориентации и видел предыдущие темы SO, которыеПредлагаю добавить что-то вроде этого:

<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel Orientation="Vertical"/>
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>

Действительно, это как-то ответило на мою озабоченность:

 -------------------------------------------
| [ Card here ] [ Card here ] [ Card here ] |
| [ Card here ] [ Card here ] [ Card here ] |
 -------------------------------------------

Проблема сейчас в том, что до сих пор Cards нетпоказано ниже, поэтому мне нужно было ScrollBar, чтобы пойти дальше.В предыдущих темах SO предлагалось добавить ScrollViewer, поэтому я сделал это до моего ItemsControl.

<ScrollViewer>
   <ItemsControl>
        ....
   </ItemsControl>
</ScrollViewer>

Однако это приводит к первому результату.Есть ли способ добиться этого?Возможно, замена для WrapPanel или что-то?

1 Ответ

1 голос
/ 27 сентября 2019

Вы можете попробовать обернуть ScrollViewer в DockPanel следующим образом:

<DockPanel MaxHeight="300">
   <ScrollViewer VerticalScrollBarVisibility="Visible">
      <ItemsControl>
         ...
      </ItemsControl>
   </ScrollViewer>
</DockPanel>

Обратите внимание, что я добавил свойство VerticalScrollBarVisibility в ScrollViewer, это ваш выбор, если он будет Vertical или Horizontal.

...