[英]How can i make a ListView's items take up all the available height?
我正在嘗試使用WPF制作柱形圖。 對於Y軸,我有一個要在控件上顯示的值列表。
我有一個ListView
綁定到集合。 如何使項目散布在列表視圖的整個長度上,而不是在頂部擠壓在一起? ListView
是用於此的正確控件嗎?
這是我的Xaml的示例:
<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到達那里? 還是我需要完全使用其他控件?
將UniformGrid用作ItemsPanel的項目獲得相等的高度
<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
將HorizontalContentAlignment
設置為Stretch
。
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.