Способ сделать WPF DockPanel с автоматическим изменением размера в зависимости от размера детей? - PullRequest
2 голосов
/ 09 сентября 2011

Прямо сейчас у меня есть 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 ]

2 голосов
/ 09 сентября 2011

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

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

1 голос
/ 09 сентября 2011

Измените DockPanel на StackPanel, поместите его в Grid и установите HorizontalAlignment и VerticalAlignment на Center

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

<Grid>
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <Menu />
        <WebBrowser Height="SomeValue" Width="SomeValue" />
    </StackPanel>
</Grid>
1 голос
/ 09 сентября 2011

Не можете ли вы указать Width="Auto"?

...