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、 のGridを に設定する必要がありますStetch

于 2012-09-01T12:56:35.267 に答える