2

如何打开子窗口并保持父窗口处于活动状态。我正在将 Silverlight 5 与最新版本的工具包一起使用。

我知道使用画笔可以帮助使背景看起来正常,但父窗口仍然被禁用。

我正在尝试实现类似于控件 F 的查找功能。我希望用户在子窗口中进行搜索,并且匹配项将显示在主显示屏上。

谢谢您的帮助,

4

1 回答 1

3

ChildWindow 是为模态(禁用父级)使用而设计的。

它使用覆盖窗口使背景显示为已禁用,但它也将 Application.Current.RootVisual 的 IsEnabled 标记为 false,然后在 ChildWindow 关闭时将其恢复。

这可以防止与“父”窗口的控件发生任何交互。解决此问题的唯一方法是制作您自己的样式 ChildWindow 控件但忽略此行为。

FloatableWindow是 Tim Heuer 的一个 codeplex 项目,它是解决问题的好方法。尽管如此,该项目似乎已经有一段时间没有更新了,因此与最新的 Silverlight 版本的兼容性可能是有问题的。

DevExpress 有一个DXDialog控件,其中包括用于模态和非模态行为的 Show 和 ShowDialog 函数。我确信其他 silverlight 工具包公司也提供类似的替代方案,这只是我熟悉的一个。

如果您不介意制作自定义控件,您可以按照 Tim Heuer 关于该主题的博客文章之类的内容来调整您自己的控件,或者使用Reflector之类的工具从 silverlight 本身对 ChildWindow 进行逆向工程并删除您不想要的部分.

于 2012-05-14T14:21:25.253 回答