2012-08-04 90 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