Wpf 当内容溢出窗口时,如何在expander中显示滚动条

Wpf 当内容溢出窗口时,如何在expander中显示滚动条,wpf,xaml,resize,sizeof,expander,Wpf,Xaml,Resize,Sizeof,Expander,我用两个扩展器一个接一个地连接文本框。在写入文本期间,文本框会动态更改高度。当文本框的大小大于父窗口时,不会显示滚动条。下面是一个例子: <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xa

我用两个扩展器一个接一个地连接文本框。在写入文本期间,文本框会动态更改高度。当文本框的大小大于父窗口时,不会显示滚动条。下面是一个例子:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="150" Width="150">

    <Grid Name="LayoutRoot">
        <Grid.RowDefinitions>
            <RowDefinition Height="*" Name="GridRow1"></RowDefinition>
            <RowDefinition Height="*" Name="GridRow2"></RowDefinition>
        </Grid.RowDefinitions>
        <Expander Grid.Row="0">
            <TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/>
        </Expander>
        <Expander Grid.Row="1">
            <TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto"/>
        </Expander>
    </Grid>
</Window>

我需要将扩展器的最大高度设置为父窗口的一半大小(窗口可以调整大小)。如果文本长度超过窗口的一半,则应显示滚动条。另一方面,当两个膨胀机都关闭时,它们应该在顶部彼此靠近


当行内定义为星号(*)时,滚动条工作正常,但关闭的扩展器不在顶部。

样式应用您的要求
数据触发器
用于
行定义

<Grid Name="LayoutRoot">
  <Grid.RowDefinitions>
    <RowDefinition Name="GridRow1">
      <RowDefinition.Style>
        <Style TargetType="{x:Type RowDefinition}">
          <Setter Property="Height"
                  Value="*" />
          <Style.Triggers>
            <DataTrigger Binding="{Binding ElementName=expanderOne,
                                            Path=IsExpanded}"
                          Value="False">
              <Setter Property="Height"
                      Value="Auto" />
            </DataTrigger>
          </Style.Triggers>
        </Style>
      </RowDefinition.Style>
    </RowDefinition>
    <RowDefinition Name="GridRow2"
                    Height="*" />
  </Grid.RowDefinitions>
  <Expander x:Name="expanderOne"
            Grid.Row="0">
    <TextBox TextWrapping="Wrap"
              VerticalScrollBarVisibility="Auto" />
  </Expander>
  <Expander Grid.Row="1">
    <TextBox TextWrapping="Wrap"
              VerticalScrollBarVisibility="Auto" />
  </Expander>
</Grid>

是的,就是这样。非常感谢。