/ に関連する/ウィンドウのサイズ変更 - wpf

コンテンツに関連するウィンドウサイジング - wpf

私は「ウィンドウ」に関して2つのサイズの問題を抱えています。基本的なレイアウトはこんな感じです

<Window MaxHeight="{DynamicResource {x:Static SystemParameters.VirtualScreenHeight}}"
MaxWidth="{DynamicResource {x:Static SystemParameters.VirtualScreenWidth}}"
>
<StackPanel>
<DockPanel LastChildFill="False">
<StackPanel DockPanel.Dock="Left"
Orientation="Horizontal">
<!--Some buttons-->
</StackPanel>
<StackPanel DockPanel.Dock="Right"
Orientation="Horizontal">
<!--Some buttons-->
</StackPanel>
</DockPanel>
<ScrollViewer>
<WrapPanel x:Name="Container">
</WrapPanel>
</ScrollViewer>
</StackPanel>
</Window>

1)ウィンドウがDockPanelの幅よりも水平方向に小さくならないようにするにはどうすればよいですか?

2)ScrollViewerをWindowの範囲内に制限するにはどうすればよいですか?それはウィンドウの境界を越えて広がって、その内容にそれ自身をサイズ設定しています。
それは私がいたときに動作するようなものです

<Window><ScrollViewer/></Window>

しかし、私は本当にDockPanelをスクローラの中に入れたくはありません。現在のフォームでは、WindowのMaxHeightを壊すことさえ強制しています。

回答:

回答№1は2

DockPanelとStackPanelの代わりに* Lenghtと一緒にGridを使用することをお勧めします。


回答№2の場合は1

ただそれらを取り除く StackPanels。それらを交換してください Gridsとあなたは良いはずです。のレイアウトロジック StackPanel それはそれが子供たちに特定の方向に(より垂直に)多くの部屋を与えるようなものです StackPanel彼らが求めるように)。それが「あなたが」奇妙なレイアウトの問題を見ている理由です。