一个既有模态又有非模态的窗口

时间:2010-05-14 14:33:52

标签: wpf modal-dialog non-modal

我想创建一个WPF窗口,其作用为模式对话框,同时便于在同一应用程序的某些其他窗口上执行选定的操作。这种行为的一个示例可以在Adobe Photoshop中看到,它提供了几个对话框,允许用户使用吸管工具从图像中进行选择,同时禁用几乎所有其他应用程序功能。

我猜测前进的方向是创建一个非模态的,始终在线的对话,并以编程方式禁用那些不适用于对话的应用程序功能。有没有一种简单的方法来实现WPF?或许我可以采用一种设计模式。

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

您正在寻找的内容类似于Multiple Document Interface。默认情况下,这在WPF中不可用,但有一些努力可以支持freecommercial

由您决定应用程序的当前状态并启用/禁用UI元素以响应此情况。

答案 2 :(得分:0)

我认为以编程方式禁用某些应用功能的永远在线的窗口是实现此目的的方法。在此表单打开时保留可以启用的功能的“白名单”可能更容易,然后禁用列表中不存在的所有内容(而不是尝试维护<所有内容的“黑名单”) em>无法启用。

答案 3 :(得分:0)

我认为解决此问题的最佳方法是使用前面提到的InputManager方法。此设计模式允许您将命令连接到工具栏按钮/菜单项等,每个都将调用您为命令指定的CanExecute处理程序。在此处理程序中,如果始终在顶部的非模态窗口打开,则将命令设置为不启用。

http://msdn.microsoft.com/en-us/library/ms752308.aspx

相关问题