扩展扩展器时如何避免增加相邻文本框的高度

时间:2016-08-15 09:16:46

标签: wpf xaml

我有以下XAML代码:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <TextBox Width="250" Text="bla bla"/>
    <Expander Header="Address" Grid.Column="1" Margin="10,0,0,0">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <TextBox Width="250"/>
            <TextBox Grid.Row="1" Width="250"/>
            <TextBox Grid.Row="2" Width="250"/>
        </Grid>
    </Expander>
</Grid>

这是一个包含一行和两列的网格。左栏包含一个TextBox,在右栏中放置一个Expander。

当我打开Expander时,TextBox的高度将会增加,以便它与Expander的高度相匹配。但是当扩展器打开时,我希望TextBox保持其高度。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

由于TextBox位于行中,您将高度设置为自动,它将随着网格行的增长而增长。

解决布局问题的最简单方法是执行以下操作:

<TextBox Width="250" Text="bla bla" Height="25" VerticalAlignment="Top"/>

设置明确的高度和方向将阻止TextBox增长和移动。

另一种方法可能是引入更多行并相应地设置扩展器Rowspan,但这对您的情况可能有点