.net core prism 7.2中的模态对话框

.net core prism 7.2中的模态对话框,.net-core,prism,prism-7,.net Core,Prism,Prism 7,我正在开发一个.net core 3 wpf Prism应用程序,我想知道在Prism 7.2中使用新的IDIalogAware接口时,当模式对话框显示时,主窗口如何变灰。 我正在Prism xamarin.forms中搜索类似属性DialogLayout.MaskStyle的内容?将“雾”控件放在主窗口的最上面,默认情况下隐藏。将其可见性绑定到壳视图模型上的特性。创建此属性重定向到的服务。也将服务注入到模式对话框的视图模型中。使用它从OnDialogOpened激活雾,并从OnDialogCl

我正在开发一个.net core 3 wpf Prism应用程序,我想知道在Prism 7.2中使用新的IDIalogAware接口时,当模式对话框显示时,主窗口如何变灰。 我正在Prism xamarin.forms中搜索类似属性DialogLayout.MaskStyle的内容?

将“雾”控件放在主窗口的最上面,默认情况下隐藏。将其可见性绑定到壳视图模型上的特性。创建此属性重定向到的服务。也将服务注入到模式对话框的视图模型中。使用它从
OnDialogOpened
激活雾,并从
OnDialogClosed
禁用雾

编辑:一个“重定向”部分的示例代码


谢谢你的回答@Haukinger,你的意思很清楚,我很难弄清楚如何创建此属性重定向到的服务。你能解释清楚吗?幸运的是,这很简单。请参阅我的编辑。请注意,该服务必须注册为singleton,因为它是对话框和shell之间显示和隐藏雾的通信手段。谢谢@Haukinger,效果非常好!然而,我希望在Prism中构建一个解决方案,虽然它会很有用,但它可能很难完全固定,而且比手动操作更容易。在
IDialogService
中,有许多事情需要解决,比如能够显示视图模型而不是视图。
public interface IFogController : INotifyPropertyChanged
{
    bool IsFogVisible { get; set; }
}

internal class ShellViewModel : BindableBase
{
    public ShellViewModel( IFogController fogController )
    {
        _fogController = fogController;
        PropertyChangedEventManager.AddHandler( fogController, ( sender, args ) => RaisePropertyChanged( nameof(IsFogVisible) ), nameof( IFogController.IsFogVisible ) );
    }

    public bool IsFogVisible
    {
        get => _fogController.IsFogVisible;
        set => _fogController.IsFogVisible = value;
    }

    private readonly IFogController _fogController;
}

internal class FogController : BindableBase, IFogController
{
    public bool IsFogVisible
    {
        get => _isFogVisible;
        set => SetProperty( ref _isFogVisible, value );
    }

    private bool _isFogVisible;
}