我正在开发一个 .net core 3 wpf Prism 应用程序,我想知道如何使用 Prism 7.2 中的新 IDIAlogAware 界面使主窗口在模式对话框显示时变灰。我正在寻找类似 Prism xamarin.forms 中的属性 DialogLayout.MaskStyle 的东西?
问问题
176 次
1 回答
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;
}
于 2019-11-24T11:29:09.233 回答