Silverlight ChildWindow根据内容设置大小,然后固定大小

Silverlight ChildWindow根据内容设置大小,然后固定大小,silverlight,mvvm,silverlight-5.0,caliburn.micro,Silverlight,Mvvm,Silverlight 5.0,Caliburn.micro,我想在Silverlight中打开一扇窗户。内容是承载在子窗口内ContentControl中的各种视图 子窗口打开,其大小取决于其内容。这是理想的行为。问题是,当内容调整大小时(例如选项卡控件、网格-添加/删除列),子窗口也会调整大小 有没有办法禁用childwindows自动调整大小?尝试设置MaxWidth/MaxHeight和MinWidth/MinHeight。问题是我不知道如何计算内容的大小 提前感谢:)将孩子窗口的内容包装在一个额外的网格控件中。使用网格的Loaded事件获取窗口内

我想在Silverlight中打开一扇窗户。内容是承载在子窗口内ContentControl中的各种视图

子窗口打开,其大小取决于其内容。这是理想的行为。问题是,当内容调整大小时(例如选项卡控件、网格-添加/删除列),子窗口也会调整大小

有没有办法禁用childwindows自动调整大小?尝试设置MaxWidth/MaxHeight和MinWidth/MinHeight。问题是我不知道如何计算内容的大小


提前感谢:)

将孩子窗口的内容包装在一个额外的网格控件中。使用网格的Loaded事件获取窗口内容的计算大小,并相应地约束窗口大小:

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

这似乎是解决方案,但在childwindows中,当contentcontrol是另一个contentcontrol(例如,具有两个视图的选项卡控件)时,无法正常工作。我不确定您的确切控件层次结构,这对我来说是可行的:ChildWindow>Grid(extraGrid)>TabControl>TabItems我使用MVVM和Caliburn.Micro。DialogView->childwindow->extragrid->contentcontrol(1)--TestView->tabcontrol->tabitem->contentcontrol(2)TestView位于contentcontrol 1中,contentcontrol 2中的其他一些视图。