1

グリッドスプリッターがあるグリッドを含むエキスパンダーがあります。

ドキュメントの概要とUIは次のようになります

ここに画像の説明を入力してください

これがコードです。

<Grid x:Name="TopGrid" ShowGridLines="True" >
 <Grid.RowDefinitions>
  <RowDefinition Height="Auto" MaxHeight="150"/>
  <RowDefinition Height="200" />
 </Grid.RowDefinitions>
 <Expander x:Name="CompanyDescriptionExpander" Grid.ColumnSpan="2" 
           VerticalAlignment="Top" IsExpanded="True" Background="Black" >
  <Expander.Header>
   <Grid Width="{Binding ElementName=CompanyDescriptionExpander, 
                         Path=ActualWidth}" Background="Aquamarine">
    <TextBlock Grid.Column="0" Text="Expander Header" Foreground="Black" />
   </Grid>
  </Expander.Header>
   <Expander.Content>
    <Grid x:Name="DescriptionGrid" MaxHeight="130" ShowGridLines="True">
     <Grid.RowDefinitions>
      <RowDefinition Height="*" MinHeight="25" MaxHeight="25"/>
      <RowDefinition Height="Auto" MinHeight="25" MaxHeight="120"/>
      <RowDefinition Height="4" MinHeight="10" MaxHeight="10"/>
     </Grid.RowDefinitions>
     <Grid.ColumnDefinitions>
      <ColumnDefinition Width="*" />
      <ColumnDefinition Width="Auto" />
     </Grid.ColumnDefinitions>
     <TextBox Grid.Column="0" Background="Orange" Grid.Row="0" Grid.RowSpan="2"
              MinHeight="40" MaxHeight="120" x:Name="DescriptionText"
              Text="TextBlock Content" HorizontalAlignment="Stretch" 
              VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" 
              VerticalContentAlignment="Top" 
              HorizontalScrollBarVisibility="Hidden" 
              VerticalScrollBarVisibility="Auto" />
     <Button x:Name="SaveIconButton" Grid.Column="1" Grid.Row="0" Width="20" 
             Height="20" VerticalAlignment="Top" />
     <Button x:Name="CancelIconButton" Grid.Column="1" Grid.Row="1" Width="20" 
             Height="20" VerticalAlignment="Top" />
     <GridSplitter ResizeBehavior="PreviousAndCurrent" ResizeDirection="Rows" 
                   Grid.Row="2" Grid.ColumnSpan="2" 
                   Height="10" MaxHeight="10" HorizontalAlignment="Stretch" 
                   VerticalAlignment="Top" Background="Red" />
    </Grid>
   </Expander.Content>
 </Expander>
 <Button Grid.Row="1" Grid.Column="0" Margin="0,5,0,0" Height="20" 
         VerticalAlignment="Top" Background="Green" />
</Grid>

グリッドスプリッターを使用すると、拡張します

ここに画像の説明を入力してください

ただし、テキストボックスが最大の高さに達し、gridsplitterがボタン(緑)の後ろに移動した後も続行します。

私の問題のシナリオは、プロジェクト内のコードをコピーして複製できます

ここに画像の説明を入力してください

テキストボックスが最大の高さに達したときに停止する必要があります。

どうやってするか?

4

1 に答える 1

2

DescriptionGridで、2番目の行のMaxHeightを120から95に変更します。

そのグリッドの3つの行を合わせた最大の高さは、グリッド自体の最大の高さを超えています。

于 2012-09-21T08:43:31.980 に答える