我正在尝试垂直布局一组文本框,一个在另一个之上。如果有太多的 TextBoxes 无法容纳在 Window 高度内,那么我希望 ScrollBar 在 Window 上可用。文本框的数量input
是可变的。总是有一个名为 的最后一个文本框output
。
如果所有文本框都可以出现在窗口高度内,那么我希望最后一个文本框拉伸到底部并填充所有剩余空间。此外,如果output
TextBox 有很多 Text,那么我希望这个 TextBox 可以提供 ScrollBar。
这是我所拥有的一些伪 XAML:
<ScrollViewer>
<Grid>
<TextBox Name="input1" Margin="12, 12, 12, 12" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBox Name="input2" Margin="12, 60, 12, 12" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBox Name="input3" Margin="12, 108, 12, 12" VerticalAlignment="Top" HorizontalAlignment="Left" />
...
<TextBox Name="inputN" Margin="12, ((N - 1) * 48 + 12), 12, 12" VerticalAlignment="Top" HorizontalAlignment="Left" />
<TextBox Name="ouput" Margin="12, (N * 48 + 12), 12, 12" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
</Grid>
</ScrollViewer>
我现在遇到的问题是,如果output
TextBox 有很多内容,那么它的高度会增加,并且 Window 会出现一个 ScrollBar。相反,我希望output
TextBox 获得 ScrollBar。
我可以通过删除持有 Grid 的 ScrollViewer 来解决这个问题。但是,如果我这样做,我会遇到另一个问题。因为文本框的数量input
是可变的,所以如果有太多以至于不是所有的文本框都可以显示在窗口中,那么窗口就没有我需要的滚动条。
我曾尝试在output
TextBox 上放置 MaxHeight,但如果 TextBox 很少input
且窗口很高,那么我很可能无法填充所有剩余的垂直空间。