WPF中多级窗口的模态效果

时间:2012-07-31 19:09:25

标签: wpf modal-dialog

拜,

当出现模态窗口时,我无法找到将“淡化”或“变暗”应用于我的应用程序的方法。我有多个窗口,所以让应用程序称为window1,可以启动window2,它可以启动模态window3。当我尝试应用任何效果时,我似乎只能使直接的父(window2)或整个监视器空间(我不想要)变暗(或模糊或其他任何我想的)。

如何将效果应用于应用程序的所有窗口,只保留当前活动/模态窗口?

1 个答案:

答案 0 :(得分:0)

您可以将一个对象(布尔值?)添加到App对象的资源中,并绑定放在每个窗口中的叠加层。

绑定窗口的Visibility和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>