当子窗口打开时,使父窗口保持活动状态

本文关键字:窗口 活动状态 | 更新日期: 2023-09-27 18:34:02

如何

打开子窗口并保持父窗口处于活动状态。我正在使用带有最新版本工具包的 Silverlight 5。

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

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

谢谢你的帮助,

当子窗口打开时,使父窗口保持活动状态

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

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

这可以防止与"父"窗口的控件进行任何交互。 解决此问题的唯一方法是创建自己的样式 ChildWindow 控件,但省略此行为。

FloatableWindow是Tim Heuer作品中的一个代码复合项目,这是解决问题的好方法。虽然它看起来有一段时间没有更新,所以与最新的 silverlight 版本的兼容性可能值得怀疑。

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

如果您不介意创建自定义控件,则可以按照 Tim Heuer(蒂姆·豪雅(关于该主题的博客文章来调整您自己的控件,或者使用 Reflector 等工具对 ChildWindow 进行逆向工程,并从 silverlight 本身中删除您不需要的部分。