为什么PopupWindowAction类在Prism 6中对于对话框维持模态模式不佳?

时间:2016-03-22 09:03:31

标签: c# wpf modal-dialog prism

我在使用Unity的Prism 6 WPF模块化应用程序中使用PopupWindowAction类创建模态对话框窗口(自定义和预定义)。 (我的计算机上安装了Windows 10,并使用MS VS 2015 Professional作为开发环境。)这是针对自定义模式对话框的:

<i:Interaction.Triggers>
    <prism:InteractionRequestTrigger SourceObject="{Binding LoginConfirmationRequest, Mode=OneWay}">
         <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True">
              <prism:PopupWindowAction.WindowContent>
                    <views:LoginView />
              </prism:PopupWindowAction.WindowContent>
            </prism:PopupWindowAction>
    </prism:InteractionRequestTrigger>
</i:Interaction.Triggers>

其中LoginView是用于表示登录对话框内容的Prism UserControl(WPF)。下面的XAML用于预定义的对话框:

<i:Interaction.Triggers>
    <prism:InteractionRequestTrigger SourceObject="{Binding NotificationRequest, Mode=OneWay}">
        <prism:PopupWindowAction IsModal="True" CenterOverAssociatedObject="True"/>
    </prism:InteractionRequestTrigger>
</i:Interaction.Triggers>

但是有一个问题:当在Shell上面显示对话框(无差异地自定义或预定义但具有Ismodal =“True”属性的PopupWindowAction)并且我开始(为了验证对话框是模态的)执行左鼠标的频繁点击对话框周围的Shell区域上的按钮,然后对话框将显示为背景,Shell显示在对话框的顶部。我只是注意到它不仅在我的应用程序中,而且在InteractivityQuickstart示例应用程序中。为什么会这样?如何为自定义和预定义的对话框设置强大的模态?请帮帮我。

1 个答案:

答案 0 :(得分:0)

这已在最新的Pre-release中修复,修复将在Prism 6.2的下一个RTM版本中提供

https://github.com/PrismLibrary/Prism/wiki/Release-Notes--Jan-10,-2016#prism-for-wpf-611-pre2

问题是窗口所有者从未被设置过。