2017-01-15 17 views
1

C#.NET WPFアプリケーションでは、コンテキストとデータに応じてWPFウィンドウを使用して複数のWPFページを表示します。 1つのWPFページは製品のカテゴリを表示するために使用され、別のWPFページは特定のカテゴリの製品を表示するために使用されます。 WPFページを変更WPFページのサイズを自動的に調整する方法

<Grid x:Name="gridPage" Grid.Row="1"> 
<ScrollViewer VerticalScrollBarVisibility="Visible" Grid.Row="1">- 
    <Frame x:Name="mainFrame"></Frame> 
</ScrollViewer> 
</Grid> 

のように簡単です:次のように

そうするためには、私は(これはページを表示するために使用されるグリッドである)、WPFウィンドウで、グリッド内のメインフレームを定義しメインフレームの内容を設定することは、私には、表示するWPFページに等しい:

//In the code-behind 
mainFrame.Content = someWPFPage; 

を私はカテゴリを表示する運命WPFページを作成すると、私はWPFページの幅と高さを設定しActualWidhtとActualHeightに等しいです(最初のコードスニペットに示されている)gridPage Gridのページは同じ幅と高さを持つため、メインフレームに正確に収まります。

問題は、WPFページでカテゴリを追加するたびに、特定のカテゴリが表示されないことです。ページのサイズが固定されている可能性があります。メインフレームにスクロールバーを追加すると問題は解決すると思ったが、そうではない。右上記の例で可視化同様

---------------------------------- 
|   |   |   | 
| Cat1 | Cat2 | Cat3 | 
|   |   |   | 
---------------------------------- 
|   |   |   | 
| Cat4 | Cat5 | Cat6 | 
|   |   |   | 
---------------------------------- 
|   |   |   | 
| Cat7 | Cat8 | Cat9 | 
|   |   |   | 
---------------------------------- 

それは多分WPFページの定義された高さと幅の範囲から外れるため、カテゴリの最後の行が示されていません。この問題を解決する方法はありますか?ページの高さをより柔軟にすることはできますが、メインフレームにはまだフィットしていますか?

+0

私は次のようにして問題を解決することができました: 'gridOfPageX.Height = double.NaN'。私は今多くのカテゴリを追加し、スクロールバーを使用することができます。 –

答えて

0

一般に、WPFコントロールに明示的な幅または高さを指定する代わりに、Horizo​​ntalAlignmentおよびVerticalAlignmentをStretchに設定することができます(またはこれらがデフォルト値であるため設定しないでください)。利用可能なスペース全体。

Heightプロパティをdouble.NaNに設定すると、VerticalAlignmentプロパティをStretch以外の値に設定しない限り、垂直方向に伸びる要素の特定の高さ制約が効果的に削除されます。

関連する問題