扩展器内的GridSplitter扩展到一个高度以上

时间:2012-09-21 07:40:53

标签: c# wpf

我有一个扩展器,其中包含一个网格,我有一个网格分割器。

文档大纲和UI就像这样

enter image description here

这是代码。

<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>

当我们使用网格分割器时,它会扩展

enter image description here

但即使在文本框达到其最大高度并且网格切换器落后于按钮(绿色)之后,它仍会继续。

可以复制我的问题场景,在项目中复制我的代码

enter image description here

我希望它在文本框达到最大高度时停止。

怎么做?

1 个答案:

答案 0 :(得分:2)

在DescriptionGrid中,将第二行MaxHeight从120更改为95.

该网格中三行的组合最大高度超过了网格本身的最大高度。