是否有一种方法(没有代码隐藏)使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。
答案 0 :(得分:1)
这取决于它的容器,但是如果你将HorizontalAlignment
属性设置为"Stretch"
并且ListView的容器将允许它,它应该根据其内容调整自己的大小。
*编辑** 如果你想要两个ListView都不滚动,那么执行以下操作:
<ScrollViewer>
<DockPanel>
<ListView ItemsSource="{Binding Rail1}" DockPanel.Dock="Top" />
<ListView ItemsSource="{Binding Rail2}" DockPanel.Dock="Top" />
</DockPanel>
</ScrollViewer>
我认为这会给你你想要的东西。
答案 1 :(得分:1)
这取决于容器。将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>