2012-08-04 145 views
4

我由棱镜队继“股票操盘手RI”例如, 但它并不完全解决这个问题:WPF + PRISM - 显示带有控件的模式弹出窗口?

我有一个壳牌在它主要地区

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

当我按下一个按钮 - 我想加载一个屏幕,使我改变了过滤器,

,然后按“保存”。然后这会调用一个服务来更新字段,并关闭弹出窗口。

这里是 '外壳' 的图示按下按钮(左)前和后(右):

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

的问题是:

  1. 在 '股票经纪人RI'示例应用程序仅使用无模式对话框弹出窗口。我需要弹出一个MODAL(后台将继续刷新,但只要弹出窗口处于活动状态,用户将无法访问它)。
  2. 当弹出窗口显示时需要Silverlight-like效果,这意味着'Shell'需要显示'禁用'(如灰色面具)。
  3. 弹出窗口应该没有“X”按钮,也没有“最小化”或“最大化”按钮。弹出窗口应该只是一个带有弯角的矩形。
  4. 我不认为我可以使用“通知窗口”或“确认窗口”,因为无论我想要什么,都无法将其放入其中。这是一个带有2个字段的示例,但弹出窗口对于制表符来说可能更加复杂,并且会向用户显示大量信息。

那么一旦按下“编辑”按钮,我该如何显示从我的“WPF + PRISM”外壳视图模型中的模态弹出窗口? (意思是,一旦'EditCommand'被执行......)

+0

你看过扩展WPF工具包http://wpftoolkit.codeplex.com/ ...你可以使用ChildWindow控件.... restyle它,如果你不想要标题,X按钮等 – 2012-08-05 15:44:24

+0

也可以试试这个:http://techiethings.blogspot.co.uk/2009/12/web- style-wpf-popup.html ...它使用Adorner提供弹出模式行为与背景调暗。 – 2012-08-05 15:52:19

+1

并使用Prism中的InteractionRequest来驱动模式弹出窗口:http://blogs.southworks.net/aadami/2012/05/09/prism-interactionrequest-and-popupmodalwindowaction-for-wpf-applications/ – 2012-08-05 15:55:09

回答

3

我找到了解决方案here

基本上它采用InteractionRequest,它让我打开一个窗口(我可以,但是我想要的风格,没有“最大化”“最小化按钮),并且还 - 我可以选择它是莫代尔

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

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

只是它没有解决的事情 - 是我不能通过添加一个灰色的半透明来禁用调用视图...还没有想出如何做到这一点...

+0

对于灰色,我创建了一个将请求链接到父窗口的pub子事件。所以父窗口订阅了灰色事件。不是非常适合MVVM,但它可以完成工作 – maximdumont 2016-01-04 15:31:41

+0

解决方案的链接不存在 – MTR 2017-04-20 06:34:16