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 № 1Ich würde empfehlen, Grid mit * Lenght anstelle von DockPanel und StackPanel zu verwenden.
1 für die Antwort № 2
Einfach loswerden StackPanel
s. Ersetzen Sie sie durch Grid
s und du solltest gut sein. Die Layoutlogik der StackPanel
ist so, dass es den Kindern in einer bestimmten Richtung (senkrecht zur StackPanel
s Orientierung), wie sie verlangen. Das ist, warum Sie die gelegentlichen Layoutprobleme sehen.