2014-01-21 7 views
0

Silverlight에서 ChildWindow를 열고 싶습니다. 내용은 ChildWindow 내부의 ContentControl에서 호스팅되는 다양한보기입니다.Silverlight ChildWindow는 내용에 따라 크기를 설정하지만 수정 크기는

childwindow가 열립니다. 크기는 내용에 따라 다릅니다. 그것은 바람직한 행동입니다. 문제는 콘텐츠의 크기가 조정되면 (예 : 탭 컨트롤, 그리드 - 열 추가/제거) 자식 창 크기가 조정됩니다.

childwindows 자동 크기 조절을 비활성화하는 방법이 있습니까? MaxWidth/MaxHeight 및 MinWidth/MinHeight를 설정하려고했습니다. 문제는 콘텐츠의 크기를 계산하는 방법을 모른다는 것입니다.

은 사전에 감사합니다 :)

답변

2

랩 별도의 그리드 컨트롤에 childwindow의 내용을. 당신의 윈도우 내용의 계산 된 크기를 얻을하고 그에 따라 창 크기를 제한하는 그리드의로드 이벤트를 사용합니다. (

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를 사용합니다. DialogView -> childwindow -> contentcontrol (1) - TestView -> tabcontrol -> tabitem -> contentcontrol (2) TestView는 contentcontrol 1에 있으며 contentcontrol 2에는 다른보기가 있습니다. –