我有以下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保持其高度。
我怎样才能做到这一点?
答案 0 :(得分:1)
由于TextBox
位于行中,您将高度设置为自动,它将随着网格行的增长而增长。
解决布局问题的最简单方法是执行以下操作:
<TextBox Width="250" Text="bla bla" Height="25" VerticalAlignment="Top"/>
设置明确的高度和方向将阻止TextBox
增长和移动。
另一种方法可能是引入更多行并相应地设置扩展器Rowspan
,但这对您的情况可能有点