Как я могу установить MinHeight StackPanel равной суммарной высоте ее содержимого? - PullRequest
0 голосов
/ 22 сентября 2009

У меня есть StackPanel с несколькими элементами управления CheckBox внутри. Как предотвратить сжатие StackPanel и скрытие элементов управления CheckBox при изменении размера окна?

    <StackPanel Margin="12,89,12,62" Name="stackPanel1">
        <CheckBox Name="chkOption1" Width="157" IsChecked="True" Margin="6">Do this thing</CheckBox>
        <CheckBox Name="chkOption2" Width="157" IsChecked="True" Margin="6">Do another thing</CheckBox>
        <CheckBox Name="chkOption2" Width="157" Margin="6">Do a third thing</CheckBox>
        <Button Height="23" Name="btnRunOperations" Click="btnRunOperations_Click" Margin="3">Do Selected Things</Button>
    </StackPanel>

РЕДАКТИРОВАТЬ: есть ли у WPF другой контейнерный элемент управления, который имеет такое поведение "из коробки"? Это похоже на действительно распространенный сценарий.

Ответы [ 3 ]

0 голосов
/ 22 сентября 2009

вы можете использовать привязку и пользовательский конвертер, где конвертер вычисляет значение для вас.

<StackPanel Height="{Binding Converter=MyConverter}"/>
0 голосов
/ 18 марта 2011

Вы должны обернуть вашу StackPanel в ScrollViewer. По умолчанию он будет запрашивать столько, сколько необходимо для отображения всех его детей.

0 голосов
/ 22 сентября 2009

Ну, я думаю, вы могли бы установить MinimumHeight стековой панели на соответствующее значение, либо жестко закодированное, либо рассчитанное как сумма высот всех элементов внутри.

...