我有以下XAML
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <!--Here Expander with RichTextBox within-->
<RowDefinition Height="Auto"/> <!--Here Splitter-->
<RowDefinition Height="*"/> <!--Here some other controls-->
</Grid.RowDefinitions>
...
问题是当Expander打开并且RichTextBox填充文本行时,它会自动增加其高度以及扩展器和网格行高度,这样底部行上的项目会向下滑动。
我希望底部网格行高度与richtextbox无关。我可以不将RichTextBox高度绑定到Expander或顶行高度吗?
谢谢。
答案 0 :(得分:1)
您可以向网格添加一行,并为该行定义MinHeight
。
将DataGrid垂直对齐设置为拉伸VerticalAlignment = Stretch
。还要为窗口设置默认高度大小。
答案 1 :(得分:0)
好。我自己找到了最佳解决方案。
我以这种方式重写了xaml:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Name="TopRow" Height="42"/> <!--Here Expander with RichTextBox within-->
<RowDefinition Height="Auto"/> <!--Here GridSplitter-->
<RowDefinition Height="*"/> <!--Here some other controls-->
</Grid.RowDefinitions>
...
开始时Expander
总是崩溃。
42是折叠状态下的Expander
的高度。
GridSplitter
在开始时被视为Visibility.Collapsed
。
所以我为扩展器创建了两个触发器:
TopRow.Height = 160
和GridSplitter.Visibility =
Visibility.Expanded
TopRow.Height = 42
和GridSplitter.Visibility
= Visibility.Collapsed
我将使用旧的行高(在折叠之前)代替160。而已。似乎一切都很好。
谢谢。