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