棱镜7.2中的模式对话框

时间:2019-11-24 10:15:21

标签: .net-core prism prism-7

我正在开发.net核心3 wpf Prism应用程序,我想知道如何通过模态对话框显示时使用Prism 7.2中的新IDIalogAware接口使主窗口变灰。 我要在Prism xamarin.forms中搜索诸如DialogLayout.MaskStyle之类的东西?

1 个答案:

答案 0 :(得分:1)

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

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

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;
}