我有一个ItemsControl
,我已经构建了显示在其中的项(views:DisplayGroupView
),使它们在水平方向上展开以显示所有内容而不是垂直方向(只使用可用高度)
我已将ItemsControl
的ItemsPanel
更改为使用具有Orientation="Horizontal"
属性的StackPanel
从布局上看,它很完美,但无论我做什么,都无法让它水平滚动,以便我可以查看所有内容。
这是ItemsControl
的XAML:
<ItemsControl ItemsSource="{Binding DisplayGroups}" Grid.Row="1" Margin="120,20,120,20" VerticalContentAlignment="Stretch">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate >
<StackPanel Orientation="Horizontal" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Visible"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<views:DisplayGroupView Margin="0,0,20,0" DataContext="{Binding}" VerticalAlignment="Stretch"></views:DisplayGroupView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这个布局看起来还不错,但是无法滚动。我尝试过更改ItemsControls的模板以包含一个滚动条,但这只会垂直堆叠:
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Stretch" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollMode="Disabled">
<ItemsPresenter VerticalAlignment="Stretch"/>
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
我如何在保持滚动功能的情况下获得水平布局?