2011-09-09 8 views
2

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

Так расположение моего приложения является по существу:

-Browser Control Class 

--DockPanel 

----Toolbar (docked to Top) 

----Browser Window Class 

------Grid 

--------Menu 

--------Embedded Browser 

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

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

http://imgur.com/qlgwA

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

http://imgur.com/YFJrh

+0

Вы говорите, что он будет сокращаться, но не расти? – Jay

+0

Что именно вы хотите? Если вы измените размер панели док-станции, у вас все еще есть дополнительное пространство, но вокруг панели док-станции. –

+0

Я установил размер в BrowserWindow. Но DockPanel по-прежнему имеет тот же размер, что и раньше, и автоматически не изменился. Вот почему это белое пространство между панелью инструментов и BrowserWindow во втором изображении. Я хочу, чтобы DockPanel автоматически изменял размер всех изменений в размере BrowserWindow. Если я изменил размер DockPanel, почему у меня еще есть лишнее пробел? Единственное, что выше этого в дереве, это мой класс UserControl. – dxue

ответ

2

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

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

1

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

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

<Grid> 
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <Menu /> 
     <WebBrowser Height="SomeValue" Width="SomeValue" /> 
    </StackPanel> 
</Grid>