1

これを説明するのは少し難しいですが、最善を尽くします。現在、2 つの列と複数の行を持つグリッドがあります。2 番目の列のコントロールのみがグリッドの高さに寄与するようにします。

したがって、次の例では、リストボックスを 2 つのテキストブロックの高さにし、さらにデータを表示する必要がある場合はスクロールバーを表示します。私はこれを行う方法について空白を描いています。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="2*" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>

    <ListBox Grid.RowSpan="2" Grid.Column="0" VerticalAlignment="Stretch" />

    <TextBlock Grid.Row="0" Grid.Column="1" />
    <TextBlock Grid.Row="1" Grid.Column="1" />
</Grid>
4

2 に答える 2

2

厄介なハッキングを気にしない場合:

<FrameworkElement Grid.RowSpan="2" Grid.Column="0" Name="Hax" />
<ListBox Grid.RowSpan="2" Grid.Column="0"
         Height="{Binding ActualHeight, ElementName=Hax}"/>
于 2012-08-30T19:35:30.620 に答える
1

IT の親を埋めるためにグリッドが拡張されているように見えます。外側の Grid の高さを Auto に設定し、VerticalAlignment を上に設定してみてください。

<Grid Height="Auto" VerticalAlignment="Top">
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="*" />
    <ColumnDefinition Width="2*" />
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>

  <ListBox Grid.RowSpan="2" Grid.Column="0" VerticalAlignment="Stretch" />

  <TextBlock Grid.Row="0" Grid.Column="1" />
  <TextBlock Grid.Row="1" Grid.Column="1" />
</Grid>
于 2012-08-30T19:26:46.063 に答える