C# 如何在wpf中弹出子窗口时模糊父窗口

C# 如何在wpf中弹出子窗口时模糊父窗口,c#,wpf,popup,C#,Wpf,Popup,我想在我的WPF应用程序上实现此功能。我希望在弹出窗口(子窗口)出现的整个屏幕(父窗口)上有一个像变暗的覆盖层/背景,这样它将使弹出窗口(子窗口)更具可见性,就像下图所示。这是一个浏览器弹出窗口。然后,当弹出窗口(子窗口)关闭时,将删除变暗的覆盖/背景。在启动对话框之前,请修改父窗口的“效果”属性: parentWindow.Effect = new BlurEffect(); 对话框关闭时: parentWindow.Effect = null; 要向覆盖添加颜色,可以分层工作(为了简单起

我想在我的WPF应用程序上实现此功能。我希望在弹出窗口(子窗口)出现的整个屏幕(父窗口)上有一个像变暗的覆盖层/背景,这样它将使弹出窗口(子窗口)更具可见性,就像下图所示。这是一个浏览器弹出窗口。然后,当弹出窗口(子窗口)关闭时,将删除变暗的覆盖/背景。

在启动对话框之前,请修改父窗口的“效果”属性:

parentWindow.Effect = new BlurEffect();
对话框关闭时:

parentWindow.Effect = null;
要向覆盖添加颜色,可以分层工作(为了简单起见,我将使用代码隐藏方法;如果有时间,可以使用MVVM/behavior):

XAML:


标签
点击
代码:

使用System.Windows;
使用System.Windows.Media.Effects;
命名空间WpfApp3
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
private void按钮base_OnClick(对象发送方,RoutedEventTarget e)
{
Grid.Effect=新的模糊效果();
Splash.Visibility=可见性.Visibility;
var dlg=新窗口();
dlg.ShowDialog();
Splash.Visibility=Visibility.Collapsed;
Grid.Effect=null;
}
}
}

启动对话框之前,请修改父窗口的“效果”属性:

parentWindow.Effect = new BlurEffect();
对话框关闭时:

parentWindow.Effect = null;
要向覆盖添加颜色,可以分层工作(为了简单起见,我将使用代码隐藏方法;如果有时间,可以使用MVVM/behavior):

XAML:


标签
点击
代码:

使用System.Windows;
使用System.Windows.Media.Effects;
命名空间WpfApp3
{
/// 
///MainWindow.xaml的交互逻辑
/// 
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
private void按钮base_OnClick(对象发送方,RoutedEventTarget e)
{
Grid.Effect=新的模糊效果();
Splash.Visibility=可见性.Visibility;
var dlg=新窗口();
dlg.ShowDialog();
Splash.Visibility=Visibility.Collapsed;
Grid.Effect=null;
}
}
}

感谢您的回复。有没有办法给模糊添加颜色?。因为它只是模糊了元素。更新了示例以显示彩色分层。感谢您的回复。有没有办法给模糊添加颜色?。因为它只是模糊了元素。更新了示例以显示彩色分层。这对我来说非常有效<代码>窗口darkwindow=new Window(){Background=Brusks.Black,不透明=0.8,AllowTransparency=true,WindowStyle=WindowStyle.None,WindowsState=WindowsState.Maximized,Topmost=true}; darkwindow.Show();un.ShowDialog();darkwindow.Close()这个副本对我来说非常有效<代码>窗口darkwindow=new Window(){Background=Brusks.Black,不透明=0.8,AllowTransparency=true,WindowStyle=WindowStyle.None,WindowsState=WindowsState.Maximized,Topmost=true}; darkwindow.Show();un.ShowDialog();darkwindow.Close()副本