Caliburn Micro展示对话框仅限于视图的模态。

3

我正在使用Caliburn.Micro和MVVM测试WPF。我的应用程序有一个AppView(WPF窗口),其中包含一个TabControl。在其中,我使用其相应的Screen ViewModel在新选项卡上加载我的视图(WPF UserControl)(遵循SimpleMDI示例)。现在,我需要从我的ViewModel中显示对话框,我像这样做:

var windowManager = new WindowManager();
var login = new ConfirmActionViewModel();
windowManager.ShowDialog(login);

这种方法的问题在于ShowDialog方法会创建一个模态视图,它会对整个应用程序进行阻塞。
我的问题是:我如何使这个对话框只对活动视图模态化?当我说模态化时,我指的是需要阻止视图,直到用户单击ConfirmActionView的按钮。
我已经尝试使用ModalContentPresenter类,但在Caliburn方面存在一些问题,而且解决方案不像使用WindowManager那样干净。谢谢!
1个回答

2
针对您的具体问题,WindowManager不能解决。在Windows(和WPF)中,模态意味着对应用程序的所有窗口都是模态的。因为这不是CM可以直接解决的。
您需要的是在视图上添加一个覆盖层。 如何使覆盖控件位于所有其他控件之上? 然后,您可以将覆盖层的可见性绑定到视图模型上的属性。

谢谢。我最终使用ModalContentPresenter类解决了这个问题。 - ericpap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接