我在使用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示例应用程序中。为什么会这样?如何为自定义和预定义的对话框设置强大的模态?请帮帮我。
答案 0 :(得分:0)
这已在最新的Pre-release中修复,修复将在Prism 6.2的下一个RTM版本中提供
https://github.com/PrismLibrary/Prism/wiki/Release-Notes--Jan-10,-2016#prism-for-wpf-611-pre2
问题是窗口所有者从未被设置过。