0
拜多層次的窗口,模態效應在WPF
我一直無法找到一個方法來申請一個「衰落」或「變暗」我的應用程序會出現一個模式窗口時。我有多個窗口,所以可以說應用程序爲window1,可以啓動window2,它可以啓動模式窗口3。當我嘗試應用任何效果時,我似乎只能使直接父窗口(window2)或整個顯示器空間(我不想要)變暗(或模糊或其他任何我感覺)。
如何將效果應用於應用程序的所有窗口,只保留當前活動/模態的效果?
拜多層次的窗口,模態效應在WPF
我一直無法找到一個方法來申請一個「衰落」或「變暗」我的應用程序會出現一個模式窗口時。我有多個窗口,所以可以說應用程序爲window1,可以啓動window2,它可以啓動模式窗口3。當我嘗試應用任何效果時,我似乎只能使直接父窗口(window2)或整個顯示器空間(我不想要)變暗(或模糊或其他任何我感覺)。
如何將效果應用於應用程序的所有窗口,只保留當前活動/模態的效果?
您可以添加一個對象(boolean?)到App對象的資源中,並綁定您放入每個窗口的疊加層。
綁定窗口的可見性和IsEnabled屬性以防止用戶切換到疊加層下面的控件。
當您打開或關閉模式對話框時,切換對象。
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
StartupUri="MainWindow.xaml">
<Application.Resources>
<sys:Boolean x:Key="IsShowingModalDialog">false</sys:Boolean>
</Application.Resources>
</Application>
絕對是我不會想到的事情。但由於窗戶數量龐大,我們決定暫時擱置模態效果。但是你的答案肯定是後面可能解決方案的列表。 – 2012-08-01 15:44:51
個人而言,我不喜歡有多個窗口。在具有多個View(UserControl)的應用程序中,我向基類添加了一點代碼,用於註冊窗口顯示模式對話框時由窗口發送的消息(MVVMLight Messenger)(ShowingModalDialogMessage)的視圖,以及更改UserControl的VisualState。 – 2012-08-01 16:13:56