我在使用下面的XAML时遇到了困难,无法在调整表单大小时使listView垂直拉伸网格第2行,同时将进度栏和信息栏锚定在表单底部。有人能给我一个正确的方向来解决这个问题吗?
XAML:
<Grid Margin="6">
<Grid.RowDefinitions>
<RowDefinition Height="300"/>
<RowDefinition Height="*"/>
<RowDefinition Height="100"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="500"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical">
<CommandBar Background="Transparent"
HorizontalAlignment="Left"
IsOpen="False"
DefaultLabelPosition="Right">
<AppBarButton Icon="AttachCamera" Label="Find Import Sources" x:Name="findSourcesButton"/>
<AppBarButton Icon="Import" x:Name="importButton" Label="Import Selected Items"/>
</CommandBar>
<ComboBox Header="Sources:" x:Name="sourcesComboBox" Width="500"/>
<DatePicker Header="Import Date: Select the required date to start the import from." Margin="0,20,0,10" />
<TextBlock Text="Files:" Margin="0,20,0,10" />
<ListView x:Name="fileListView"
VerticalAlignment="Stretch"
MinHeight="300"
Width="500"
SelectionMode="None"
BorderBrush="#FF858585"
BorderThickness="1"
ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.05*"/>
<ColumnDefinition Width="0.20*"/>
<ColumnDefinition Width="0.75*"/>
</Grid.ColumnDefinitions>
<!--<CheckBox Grid.Column="0" IsChecked="{Binding ImportableItem.IsSelected, Mode=TwoWay}" />
--><!-- Click="CheckBox_Click"/>--><!--
<Image Grid.Column="1" Source="{Binding Thumbnail}" Width="120" Height="120" Stretch="Uniform"/>
<TextBlock Grid.Column="2" Text="{Binding ImportableItem.Name}" VerticalAlignment="Center" Margin="10,0"/>-->
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackPanel>
<ProgressBar x:Name="progressBar" SmallChange="0.01" LargeChange="0.1" Maximum="1" MinHeight="100" Grid.Row="2" Grid.ColumnSpan="3"/>
<InfoBar
Grid.Row="2"
Grid.ColumnSpan="3"
IsOpen="True"
IsIconVisible="True"
IsClosable="True"
Title="Title"
Message="Message display here." />
</Grid>
1条答案
按热度按时间qyuhtwio1#
我设法修复了它。问题可能是,堆栈面板没有调整它的高度,所以我从它那里删除了列表视图,并将它直接放在Grid.Row=“1”的网格中。
现在网格中的第一行将调整其高度为其中stackpanel的呈现高度。这不是因为它被设置为auto。网格的第三行具有预定义的高度100,屏幕的其余部分将填充列表视图,这就是为什么它的高度被定义为“*"。
以下也是height属性的含义:
星星(*):当自动和固定大小被填充时,它将占用剩余的空间。
出发地:https://learn.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.grid.rowdefinitions?view=winrt-22621
这是更改后的代码: