2014-01-21 76 views
0

我想在Silverlight中打開一個ChildWindow。內容是託管在ChildWindow內的ContentControl中的各種視圖。Silverlight ChildWindow根據內容設置大小,但然後修復大小

子窗口打開,它的大小是根據其內容。這是理想的行爲。問題是,當內容調整大小時(例如Tab控件,網格 - 添加/刪除列),子窗口也調整大小。

有什麼辦法可以禁用childwindows自動調整大小嗎?試圖設置MaxWidth/MaxHeight和MinWidth/MinHeight。問題是我不知道如何計算內容的大小。

預先感謝您:)

回答

2

包裝您childwindow的一個額外的電網控制的內容。使用網格的Loaded事件得到您的窗口內容的計算規模,並相應地限制你的窗口大小:

void ExtraGrid_Loaded(object sender, RoutedEventArgs e) 
{ 
    childWindow.Width = extraGrid.ActualWidth; 
    childWindow.Height = extraGrid.ActualHeight; 
} 
+0

這似乎是解決辦法,但不正確時childwindows ContentControl中工作是另一個ContentControl中(例如, ) –

+0

我不確定你的確切控制層次結構,這對我有效: ChildWindow> Grid(extraGrid)> TabControl> TabItems –

+0

我使用MVVM和Caliburn.Micro。 (1) - TestView - > tabcontrol - > tabitem - > contentcontrol(2) TestView是在contentcontrol 1中的其他視圖,在contentcontrol 2中的其他視圖。 –