Silverlight ChildWindow根据内容设置大小,然后修复大小

时间:2014-01-21 08:57:06

标签: silverlight mvvm silverlight-5.0 caliburn.micro

我想在Silverlight中打开一个ChildWindow。内容是各种视图,它们托管在ChildWindow内的ContentControl中。

子窗口打开,它的大小是根据其内容。这是理想的行为。问题是,当内容调整大小时(例如Tab控件,网格 - 添加/删除列),子窗口也会调整大小。

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

提前谢谢你:)

1 个答案:

答案 0 :(得分:2)

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

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