Как я могу установить MinHeight StackPanel как общую высоту его содержимого?

У меня есть 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 другой элемент управления контейнером, который имеет такое поведение «из коробки»? Это похоже на действительно распространенный сценарий.


person dthrasher    schedule 22.09.2009    source источник


Ответы (3)


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

person luvieere    schedule 22.09.2009

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

<StackPanel Height="{Binding Converter=MyConverter}"/>
person Muad'Dib    schedule 22.09.2009

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

person CodeNaked    schedule 17.03.2011