如何打开子窗口并保持父窗口处于事件状态。我正在使用 Silverlight 5 和最新版本的工具包。
我知道使用画笔可以帮助背景看起来正常,但父窗口仍然处于禁用状态。
我正在尝试实现类似于控件 F 的查找功能。我希望用户在子窗口中搜索,并且匹配项将显示在主显示屏上。
感谢您的帮助,
最佳答案
ChildWindow 是为模态(禁用父级)使用而设计的。
正如您所发现的,它使用覆盖窗口使背景显示为禁用状态,但它也将 Application.Current.RootVisual 的 IsEnabled 标记为 false,然后在 ChildWindow 关闭时恢复它。
这可以防止与“父”窗口的控件进行任何交互。解决这个问题的唯一方法是制作您自己的样式 ChildWindow 控件,但忽略此行为。
FloatableWindow是 Tim Heuer 的一个 Codeplex 项目,它是解决问题的快速方法。尽管该项目似乎已经有一段时间没有更新了,所以与最新 silverlight 版本的兼容性可能存在问题。
DevExpress 有一个 DXDialog控件,其中包括用于模态和非模态行为的 Show 和 ShowDialog 函数。我确信其他 silverlight 工具包公司也提供类似的替代方案,这只是我熟悉的一个。
如果您不介意制作自定义控件,您可以遵循 Tim Heuer 的 blog post 之类的操作在此主题上调整您自己的控制或使用类似 Reflector 的工具从 silverlight 本身对 ChildWindow 进行逆向工程并删除您不需要的部分。
关于c# - 当子窗口打开时使父窗口保持事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10584795/