C# 如何使ListView的项目占据所有可用高度?
我正在尝试使用WPF制作柱状图。对于Y轴,我有一个要在控件上显示的值列表 我有一个绑定到集合的ListView。我怎样才能让项目分布在列表视图的整个长度上,而不是在顶部挤在一起?ListView是用于此操作的正确控件吗 以下是我的Xaml示例:C# 如何使ListView的项目占据所有可用高度?,c#,wpf,xaml,C#,Wpf,Xaml,我正在尝试使用WPF制作柱状图。对于Y轴,我有一个要在控件上显示的值列表 我有一个绑定到集合的ListView。我怎样才能让项目分布在列表视图的整个长度上,而不是在顶部挤在一起?ListView是用于此操作的正确控件吗 以下是我的Xaml示例: <ListView Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" ItemsSource="{Binding YAxisValues}" Background
<ListView Grid.Row="1" Grid.Column="1" Grid.RowSpan="2"
ItemsSource="{Binding YAxisValues}"
Background="Gray" VerticalContentAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Path=Value}"
Foreground="White"
HorizontalAlignment="Left"
FontSize="12" Width="50"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
左边是我目前拥有的列表视图。
右边是我想要的结果
如何更改我的ListView以到达那里?还是我需要使用完全不同的控件 将项目的HorizontalContentAlignment设置为拉伸
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
使用UniformGrid作为项spanel项获得相等高度
<ListView Name="Axis" Grid.Row="1" Grid.Column="1" Grid.RowSpan="2"
ItemsSource="{Binding YAxisValues}"
Background="Gray" VerticalContentAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="1"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<!--no changes-->
</ListView.ItemTemplate>
</ListView>
当ListView没有足够的高度容纳所有元素时,可能会出现问题。在这种情况下,我会将ListView放入ViewBox尝试将标签包装在一个ViewBox中,如下所示:@NorbertKovacs我担心它似乎不会改变结果。@Timmoth,另一个想法:ListView允许从列表中选择项目。如果您不需要选择,ItemsControl而不是ListView应该可以使用相同的顺序。我希望这些项目在垂直方向上占据尽可能多的空间。但就我所见,这个解决方案似乎并没有改变它。即使在设置VerticalContentAlignment时,如果您将其更改为VerticalContentAlignment,然后将ListView.ItemsPanel更改为UniformGrid,也应该可以修复它,这基本上是ASh的答案。区别在于,在ListView本身或其ListView.ItemContainerStyle.Perfect上设置VerticalContentAlignment并不重要!正是我需要的。在我的例子中,如果没有足够的项来填充列表框的空间,那么UniformGrid将使这些项能够共享额外的空间。如果有足够的项目显示滚动条,则每个项目的高度将达到所需的最小高度。荣誉