WPF + PRISM - 显示带控件的模态弹出窗口吗?

时间:2012-08-04 22:51:03

标签: wpf popup prism

我正在关注Prism团队的'Stock Trader RI'示例, 但它并没有完全解决这个问题:

我有 Shell ,其中包含 主要区域

在这个shell中我有一些过滤字段和一个网格。

当我按下按钮时 - 我想加载一个允许我更改过滤器的屏幕,

然后按'保存'。然后,这将调用服务来更新字段,并关闭弹出窗口。

以下是按下按钮(左)和之后(右)之前'Shell'的图示:

Illustration: http://s7.postimage.org/td49mbvk9/This_To_This.png

问题是:

  1. 'Stock Trader RI'示例应用程序仅使用模态对话框弹出窗口。我需要一个 MODAL 弹出窗口(后台将继续刷新,但只要弹出窗口处于活动状态,用户就无法访问它。)
  2. 弹出窗口时需要具有类似Silverlight的效果,这意味着 - “Shell”需要显示为“已禁用”(就像上面的灰色蒙版)。
  3. 弹出窗口没有“X”按钮,没有“最小化”或“最大化”按钮。弹出窗口应该只是一个带有弯角的矩形。
  4. 我认为我不能使用“通知窗口”或“确认窗口”,因为我无法将其放入其中。这是一个包含2个字段的示例,但弹出窗口可能会更复杂,并且会向用户显示大量信息。
  5. 那么一旦按下“编辑”按钮,如何从我的“WPF + PRISM”Shell-View-Model中显示模态弹出窗口? (意思是,一旦'EditCommand'被执行......)

1 个答案:

答案 0 :(得分:3)

我找到了解决方案here

基本上它使用 InteractionRequest ,它允许我打开一个窗口(我可以按照我想要的样式,没有'最大化''最小化按钮),而且 - 我可以选择它是模态

这个解决方案的好处是 - 我可以使用自定义弹出窗口,而不仅仅是通知或确认弹出窗口。

另外 - 我可以将信息传递回调用'InteractionRequest'的类。

只有它没有解决的问题是,我不能通过在它上面添加一个灰色的半透明来禁用调用视图...还没弄明白该怎么做...