我有一个ItemsControl
,我已经构建了我在其中显示的项目 ( views:DisplayGroupView
),它们将水平扩展以显示其所有内容,而不是垂直扩展(仅使用可用高度)
我已经改变了我ItemsPanel
的ItemsControl
使用 a StackPanel
withOrientation="Horizontal"
布局明智,它是完美的,但无论我做什么,我都无法让它水平滚动,所以我可以看到一切。
这是 XAML 的ItemsControl
:
<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>
如何在仍然能够滚动的同时获得水平布局?