我有一个ListView
控件。我想让它拉伸到填充一列的整个长度。为了实现这一点,我将ColumnDefinition
设置为"*"
。我将ListView
的VerticalAlignment
属性设置为Stretch
,用于ListView
及其包含元素。
目前,ListView
只会在数据显示在里面时增加大小。
我如何使ListView
拉伸到列的大小,无论里面显示什么数据?
下面是我的XAML文件的示例版本。它显示VerticalAllignment
被设置为在ListView
和所有包含元素上拉伸:
<Grid>
<TabControl>
<TabItem Header="Main"
Margin="1,-1,-2,1">
<Grid Background="#FFE5E5E5" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border BorderBrush="Black"
BorderThickness=".5"
Padding="4"
Grid.Column="0"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch">
<StackPanel Orientation="Vertical"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch" >
<ListView x:Name="FilesDisplayed"
ItemsSource="{Binding AllFilePaths}"
SelectionChanged="FilesDisplayed_SelectionChanged"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Visible"/>
当您希望内部元素填充外部空间时,请避免使用StackPanel
。将其替换为Grid
,并使用Grid.ColumnDefinitions
或Grid.RowDefinitions
来调整位置。