我有一个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"/>
1条答案
按热度按时间wvyml7n51#
当你想让内部元素填充外部空间时,避免使用
StackPanel
。将其替换为Grid
,并使用Grid.ColumnDefinitions
或Grid.RowDefinitions
来调整位置。