c# - 当子窗口打开时使父窗口保持事件状态

标签 c# wpf silverlight childwindow

如何打开子窗口并保持父窗口处于事件状态。我正在使用 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/

相关文章:

c# - 我怎样才能得到一个数据库表的总和到一个变量?

c# - 如何从 Windows Powershell 构建运行 vNext 应用程序?

c# - TextBlock 中动态字符串的 WPF 本地化

c# - 我可以扩展 Button 以添加 Right Click 事件,同时保持图形副作用吗?

silverlight - 刷新WP7中的列表框

c# - 删除字符串中的所有英文字母

C#/LINQ : Concatenating strings

wpf - ItemsControl,VirtualizingStackPanel和ScrollViewer的高度

c# - 通过 Silverlight 连接到 OLAP Cube

c# - 进入全屏模式时更改页面