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();