代码之家  ›  专栏  ›  技术社区  ›  No Window

WPF中多级窗口的模态效应

  •  0
  • No Window  · 技术社区  · 14 年前

    问候语,

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

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Emond    14 年前

    您可以将一个对象(boolean?)添加到应用程序对象的资源中,并绑定您放置在每个窗口中的覆盖。

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