Способ сделать WPF DockPanel с автоматическим изменением размера в зависимости от размера детей?

Прямо сейчас у меня есть DockPanel, которая содержит панель инструментов и BrowserWindow. Когда я изменяю размер BrowserWindow для соответствия содержимому, я хочу, чтобы это изменение распространялось вверх в DockPanel и автоматически изменяло размер. Есть ли для этого настройки?

Итак, макет моего приложения по сути:

-Browser Control Class

--DockPanel

----Toolbar (docked to Top)

----Browser Window Class

------Grid

--------Menu

--------Embedded Browser

По сути, я хочу, чтобы размер, который я установил в своем классе окна браузера, автоматически изменял размер DockPanel.

Перед применением размера к окну браузера:

http://imgur.com/qlgwA

После применения размера к окну браузера (я хочу избавиться от лишнего пространства вокруг встроенного браузера):

http://imgur.com/YFJrh

3 ответа

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

Я думаю, что вы также должны будете что-то изменить в своей Grid. По LastChildFill должно быть установлено свойство. Вы на правильном пути, по крайней мере.

Вы не можете указать Width="Auto"?

Измени свой DockPanel к StackPanelположи его внутрь Gridи установить это HorizontalAlignment а также VerticalAlignment в Center

Вы также можете поиграть с Height/Width из WebBrowser указать начальный размер

<Grid>
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <Menu />
        <WebBrowser Height="SomeValue" Width="SomeValue" />
    </StackPanel>
</Grid>
Другие вопросы по тегам