2011-09-09 72 views
2

現在我有一個包含工具欄和BrowserWindow的DockPanel。當我重新調整BrowserWindow的大小以適應內容時,我希望將該更改傳播到DockPanel並自動重新調整大小。有這樣的設置嗎?使WPF 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

+0

你是說它會縮小,但不會增長? – Jay

+0

你究竟想要什麼?如果您使碼頭面板調整大小,您仍然有額外的空間,但在碼頭面板周圍。 –

+0

我在BrowserWindow上設置了一個尺寸。但是DockPanel仍然和以前一樣大小,並且不會自動重新調整大小。這就是爲什麼工具欄和第二張圖片中的BrowserWindow之間存在空白區域的原因。我想讓DockPanel自動重新調整大小以適應BrowserWindow大小的任何變化。 如果我重新調整DockPanel大小,爲什麼我仍然有額外的空白空間?它上面唯一的東西是我的UserControl類。 – dxue

回答

1

難道你不能指定Width="Auto"

2

DockPanel有一個LastChildFill屬性,您可以使用。試着玩一下。請記住,BrowserWindow需要是DockPanel中的最後一個孩子。

我認爲你也將不得不改變你的網格中的東西。應該設置LastChildFill屬性。你至少在正確的軌道上。

1

更改DockPanelStackPanel,把它放在Grid內,並設置它的HorizontalAlignmentVerticalAlignmentCenter

您可能還需要與WebBrowser的的Height/Width發揮到指定初始大小

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