0

2 つの RichTextBox を表示する WPF コントロールを作成しようとしています。1 つずつ重ねて、それぞれが等しいスペースを取ります。

しかし、一番上のものに何も入っていない場合は、そのスペースを埋めるために一番下のものが必要です。

グリッドを使用してみましたが、正しく動作しません。

これらは私が試した行定義です:

<Grid>  
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
     <RowDefinition Height="*"/>
  </Grid.RowDefinitions>

  <RichTextBox Grid.Row="0" />
  <RichTextBox Grid.Row="1" />     
</Grid>

両方の行が表示されている場合、一番上の行には の高さが含まれています (50/50 分割ではありません)。

<Grid>  
  <Grid.RowDefinitions>
     <RowDefinition Height="*"/>
     <RowDefinition Height="*"/>
  </Grid.RowDefinitions>

  <RichTextBox Grid.Row="0" Visibility="Collapsed"/>
  <RichTextBox Grid.Row="1" />     
</Grid>

一番上の行が折りたたまれている場合、一番下の行はスペースを埋めるために拡張されません。

<Grid.RowDefinitions>
     <RowDefinition Height="*"/>
     <RowDefinition Height="Auto"/>
</Grid.RowDefinitions>

これを使用するか、MinHeight を一番下の行に追加すると、コンテナーが無制限になります。一番下のRichTextBoxのスクロールバーが表示されないようにします。

2 つのコントロールを重ねて、使用可能なスペースを均等に埋める方法はありますか? (崩れるままに)

注: 私はグリッドに縛られていません。

4

1 に答える 1

0

私はそれを行う方法を見つけました:

<UniformGrid Columns="1">  
  <RichTextBox />
  <RichTextBox />     
</UniformGrid>

そして折りたたまれた場合:

<UniformGrid Columns="1">  
  <RichTextBox Visibility="Collapsed" />
  <RichTextBox />     
</UniformGrid>

私が探していたように動作します。

于 2013-01-17T21:23:24.967 に答える