wpf启用蒙板
1在主窗体中打开子窗体
// 显示蒙板层
setmaskpup.ShowMaskLayer(MaskLayer);
// 加载子窗体
var childWindow = new np_set_imdex();
childWindow.jjj += closeMask;
childWindow.Owner = this; // 设置主窗体为子窗体的所有者
childWindow.WindowStartupLocation = WindowStartupLocation.CenterScreen;
childWindow.ShowDialog();
// 隐藏蒙板层
void closeMask()
{
// 关蒙板层
setmaskpup.HideMaskLayer(MaskLayer, ChildWindowContainer);
}
2.在主窗体的子控件ContentControl中打开子窗体
np_pos_index userControl3 = new np_pos_index();
userControl3.OverlayVisibilityChanged += OnOverlayVisibilityChanged;
ContentControl1.Content = new Frame()
{
Content = userControl3
};
///////////////////
//关闭蒙板用
private void OnOverlayVisibilityChanged(object sender, bool isVisible)
{
MaskLayer.Visibility = isVisible ? Visibility.Visible : Visibility.Collapsed;
//closeMask();
}
子窗体
//启用蒙板
public event EventHandler<bool> OverlayVisibilityChanged;
sellSelectedProduct = selectedItem;
//// 显示蒙板层
//// 改价
np_editnum nn = new np_editnum(sellSelectedProduct);
nn.WindowStartupLocation = WindowStartupLocation.CenterScreen;
//nn.Owner = this; // 设置所有者窗口,这样它们会相对于主窗口定位
nn.Closed += (s, args) => OverlayVisibilityChanged?.Invoke(this, false);
OverlayVisibilityChanged?.Invoke(this, true);
nn.ShowDialog();