1

在不在浏览器中运行的 Silverlight 应用程序中,是否可以创建新的顶级窗口?或者至少是一个子窗口?

我找到了一些使用ChildWindow该类的解决方案,但即使我的项目配置为 Silverlight 4,也找不到该类。

我有一个UserControl(XAML 文件)要显示为新窗口。不幸的是,使用选项卡控件并不是一个真正的选项,因为用户必须能够安排窗口以同时查看多个窗口。

有什么建议么?

4

1 回答 1

2

ChildWindow是 SDK 的一部分,需要添加 System.Windows.Controls.dll 才能访问该ChildWindow类型。

我不确定您是否可以让 ChildWindow 完成您所期望的操作。ChildWindow 旨在以模态方式呈现窗口。然而,这种模式行为实际上是 ChildWindow 模板的一个功能。可以重新模板以删除模态行为。但是我从未尝试过操作多个子窗口。你可以试一试,最大的问题是如果你以不同的创建顺序关闭子窗口会发生什么?

为了使用 aChildWindow来呈现您的,您UserControl最好从 派生ChildWindow,而不是UserControl. 您甚至可能会发现,在您的特定 Xaml 和 ChildWindow 之间创建基类最终会更好,您可以在其中放置所有窗口通用的代码。

我可能会注意到 Silverlight 5 将支持多个窗口。

于 2011-06-20T12:24:47.840 回答