/ / Fenstergröße bezogen auf den Inhalt - wpf

Fenstergröße bezogen auf den Inhalt - wpf

Ich habe zwei Größenprobleme bezüglich eines Fensters, das ich habe. Das Grundlayout ist so

<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) Wie kann ich erreichen, dass das Fenster horizontal nicht kleiner wird als die Breite des DockPanels?

2) Wie kann ich den ScrollViewer auf die Grenzen des Fensters beschränken? Es passt sich seinem Inhalt an und erstreckt sich über die Grenzen des Fensters hinaus.
Es war irgendwie gewohnt zu arbeiten, als ich es getan hatte

<Window><ScrollViewer/></Window>

, aber ich möchte das DockPanel nicht wirklich im Scroller haben. In der aktuellen Form zwingt es sogar das Fenster, seine MaxHeight zu brechen.

Antworten:

2 für die Antwort № 1

Ich würde empfehlen, Grid mit * Lenght anstelle von DockPanel und StackPanel zu verwenden.


1 für die Antwort № 2

Einfach loswerden StackPanels. Ersetzen Sie sie durch Grids und du solltest gut sein. Die Layoutlogik der StackPanel ist so, dass es den Kindern in einer bestimmten Richtung (senkrecht zur StackPanels Orientierung), wie sie verlangen. Das ist, warum Sie die gelegentlichen Layoutprobleme sehen.