TextBoxes のセットを上下に並べてレイアウトしようとしています。ウィンドウの高さに収まらないほど多くの TextBox がある場合は、ウィンドウで ScrollBar を使用できるようにします。input
TextBoxesの数は可変です。という名前の最後の TextBox が常に存在しますoutput
。
すべての TextBoxes がウィンドウの高さ内に表示できる場合、最後の TextBox を下まで伸ばして残りのスペースをすべて埋めます。さらに、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 を削除することで、この問題を解決できます。ただし、それを行うと、別の問題が発生します。TextBoxesの数input
は可変であるため、すべての TextBoxes を Window に表示できないほど多くの TextBoxes がある場合、Window は必要な ScrollBar を取得しません。
MaxHeight をoutput
TextBox に配置して遊んでみましたが、TextBox が少なくinput
、背の高い Window がある場合、残りの垂直スペースをすべて埋められない傾向があります。