在 WPF 中打开模态对话框时的灰色主窗口

MrS*_*Scf 3 .net wpf xaml

当从主窗口打开模态对话框时,我想用灰色覆盖主窗口。WPF中是否有标准解决方案来模拟这种效果?

这是一个例子:

Phi*_*ght 7

没有内置的功能,但它应该很容易实现。

在您的主窗口中,您需要一个没有定义列或行的顶层网格,因此它只是一个占据所有客户区的单元格。Grid 的第一个子元素是一个 UserControl,它实现了应用程序的所有正常内容。第二个孩子只是一个 Rectangle ,它的前景是半透明的灰色。将其 Visibility 数据绑定到主窗口上的适当属性或作为应用程序 DataContext 的 ViewModel 属性。

每当你显示一个模态对话框时,你设置适当的属性来显示矩形,当模态对话框被删除时,它会将属性重置回 false。您可以添加一个从 Window 继承的基类,它会自动执行此操作,然后从该基类派生所有实际对话框。