Tengo dos problemas de tamaño con respecto a una ventana que tengo. El diseño básico es así.
<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) ¿Cómo hago para que la ventana no se haga más pequeña horizontalmente que el ancho del DockPanel?
2) ¿Cómo hago que ScrollViewer esté restringido a los límites de la ventana? Se está ajustando a su contenido, extendiéndose más allá de los límites de la Ventana.
Solía funcionar cuando tenía
<Window><ScrollViewer/></Window>
, pero realmente no quiero que el DockPanel esté dentro de la rueda de desplazamiento. En la forma actual, incluso está forzando a la Ventana a romper su MaxHeight.
Respuestas
2 para la respuesta № 1Le recomendaría usar Grid con * Longitud en lugar de DockPanel y StackPanel.
1 para la respuesta № 2
Solo deshazte de esos StackPanel
s. Reemplazarlos con Grid
s y usted debe ser bueno. La lógica de diseño de la StackPanel
es tal que dará a los niños tanto espacio en una dirección determinada (perpendicular a la StackPanel
orientación s) como piden. Es por eso que estás viendo los problemas de diseño impares.