私のシナリオでは、エンドユーザーは、ユーザーインターフェイスを行に分割し、それらの行の高さルールを定義することでカスタマイズしました(固定、スペース、コンテンツに合わせる)。私はWPF Gridを使ってこれを実装します。RowHeight = Autoがグリッドを伸ばさないようにしますか?
グリッドが画面全体を塗りつぶし始め、それ以上大きくならないようにしてください。グリッド全体を常に見ることができなければなりません(グリッド全体のスクロールバーは大丈夫ですが、スクロールバーはありません)。
私の問題の要点:ユーザーが1つ以上の「自動」サイズの行を作成すると、それらの行のコンテンツによってグリッド全体のサイズが拡大され、スクロールバーが導入されます。グリッドの最大高さを固定数に設定します。
一度グリッドを伸ばすと、その星サイズの行が空き領域を埋めるので、自動サイズの行が後で縮小されてもグリッドは永久に伸びるため、星型サイズの行が含まれると悪化します。
"auto"行を必要に応じて拡大/縮小するように制限する方法を見つける必要がありますが、すべての行の実際の高さの合計がグリッド全体より大きくなることはありません。
説明すると、このグリッドは固定された最大高さで、すべてのサイズモードを表す行があります。この例では
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="200"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<TextBlock>
abc<LineBreak/>
abc<LineBreak/>
abc<LineBreak/>
abc<LineBreak/>
abc<LineBreak/>
</TextBlock>
</ScrollViewer>
、「ABC」のテキストブロック膨張すると、グリッドの全体の高さは、固定された「300」の最大高さを超えて広がっています。自動サイズの行の柔軟性を保ちながら、この動作がグリッドの最大高さを保証するにはどうすればよいですか?