Размер окна, связанный с содержанием - PullRequest
1 голос
/ 03 декабря 2008

У меня есть две проблемы с размером окна, которое у меня есть. Базовая раскладка выглядит следующим образом

<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><ScrollViewer/></Window>

, но я действительно не хочу, чтобы DockPanel находилась внутри скроллера. В текущей форме он даже заставляет Window ломать свой MaxHeight.

Ответы [ 2 ]

2 голосов
/ 03 декабря 2008

Я бы порекомендовал вам использовать Grid с * Lenght вместо DockPanel и StackPanel.

1 голос
/ 03 декабря 2008

Просто избавьтесь от этих StackPanel с. Замените их на Grid s, и все будет хорошо. Логика расположения StackPanel такова, что он даст детям столько места в определенном направлении (перпендикулярно ориентации StackPanel s), сколько они просят. Вот почему вы видите странные проблемы с макетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...