我有一个带项目的ItemsControl。我希望像照片中那样订购物品。如果有更多元素,那个空格,应该有一个水平滚动条。我如何存档?
相关代码:
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<ScrollViewer PanningMode="Both" >
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
编辑: 很抱歉,报告建议的解决方案不起作用,结果是项目的高度在运行时动态变化,导致只有一个项目的垂直空间。
答案 0 :(得分:1)
会是这样的吗?
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<ScrollViewer HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Disabled" >
如果这不起作用,请尝试这个
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Height="{Binding RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType={x:Type ScrollViewer}},
Path=ActualHeight}" />
修改强>
请勿忘记制作WrapPanel Orientation="Vertical"
答案 1 :(得分:1)
问题的示例代码
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Hidden" Height="100" Width="200">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" Height="100"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
希望这是你要找的东西!!!
答案 2 :(得分:1)
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" >
<ItemsControl>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>
使用ListBox简单地说:
<ListBox ScrollViewer.VerticalScrollBarVisibility="Disabled" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>