6

我已经为此编写了很多示例代码,最后决定问这个:我有一个网格,它有一个固定位置的按钮,里面还有另一个网格。外部网格没有设置宽度/高度。它应该根据显示分辨率而变化。我将窗口的 W/H 设置为:

Width = 200;
Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 5;

在内部网格内,我有 3 行,上面是一个按钮(高度自动),中间是一个列表视图,其高度可能会有所不同(并且必须填充可用空间),最后一行由一个文本框组成,它应该始终保持在窗口的底部。为此的xaml如下:

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Click="Button_Click" Width="32" Height="32" FontSize="16" VerticalAlignment="Center" 
            HorizontalAlignment="Left" FontWeight="Bold" ToolTip="Click here to hide the Sidebar">&gt;</Button>
<Grid VerticalAlignment="Top" Background="Transparent" Grid.Row="1">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <!-- This is the settings bar-->
            <RowDefinition Height="*" />
            <!-- This will contain the listbox-->
            <RowDefinition Height="Auto" />
            <!-- This is to maintain vertical arrangement and future use-->
        </Grid.RowDefinitions>

        <Button Content="hello" Grid.Row="0" />
        <ListView x:Name="lstView" Background="Transparent" Grid.Row="1"/>
        <TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Height="50" Margin="2" BorderBrush="Black" Grid.Row="2" />`

但我只是不能让中间行填满整个空间,并且文本框在屏幕底部对齐。任何人都可以建议如何让文本框与底部和中间行对齐以填充整个剩余高度以及如何在更改显示模式时不显式设置高度的情况下完成此操作?

4

1 回答 1

0

如果您不告诉Grid占用所有可用空间,则无法分发它,您可能应该将 的设置VerticalAlignment为。GridStetch

于 2012-09-01T12:56:35.267 回答