我想在我的WPF應用程序上實現此功能。我希望在那裏出現彈出窗口(子窗口)的整個屏幕(父窗口)變暗的疊加/背景,因此它將使彈出窗口(子窗口)更具可見性就像下面的圖像一樣。這是一個瀏覽器彈出窗口。然後當彈出窗口(子窗口)關閉時,黑暗的疊加/背景被刪除。 如何在wpf中彈出子窗口時模糊父窗口
-1
A
回答
1
在推出你的對話框,修改父窗口的效果屬性:
parentWindow.Effect = new BlurEffect();
當對話框關閉:
parentWindow.Effect = null;
爲了增加顏色的疊加,你可以工作在層(爲了簡單起見,我將使用代碼隱藏方法;如果您有時間,則使用MVVM /行爲):
XAML:
<Window x:Class="WpfApp3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp3"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid x:Name="Grid">
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<Label>Label</Label>
<TextBox Grid.Row="1"></TextBox>
<Button Click="ButtonBase_OnClick">Click</Button>
</Grid>
<Border x:Name="Splash" Grid.RowSpan="4" Opacity=".2" Visibility="Collapsed" Background="Black">
</Border>
</Grid>
</Window>
代碼:
using System.Windows;
using System.Windows.Media.Effects;
namespace WpfApp3
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
Grid.Effect = new BlurEffect();
Splash.Visibility = Visibility.Visible;
var dlg = new Window();
dlg.ShowDialog();
Splash.Visibility = Visibility.Collapsed;
Grid.Effect = null;
}
}
}
+0
感謝您的迴應。有沒有辦法給模糊添加顏色?它只是模糊了這個元素。 –
+0
已更新示例以顯示彩色分層。 – Eric
相關問題
- 1. 如何使彈出窗口BG模糊
- 2. 子窗口彈出窗口的父窗口可見性
- 3. 如何從父窗口刷新子彈出窗口?
- 4. WPF彈出窗口
- 5. 父窗口上方的子窗口wpf
- 6. 當子彈出窗口打開時禁用父窗口
- 7. 從彈出窗口激活父窗口
- 8. 在wpf中調整父窗口大小時彈出窗口在父窗口外面
- 9. C++ WINAPI:客戶區父窗口模糊子選項卡窗口
- 10. 彈出格在父窗口
- 11. 彈出窗口模糊圖像
- 12. 如何從JavaScript中的子彈出窗口在父窗口中顯示警報?
- 13. 如何將子窗口僅在WPF的父窗口內移動?
- 14. 如何關閉父窗口中的彈出窗口?
- 15. 如何在父窗口頂部顯示彈出窗口?
- 16. 如何從彈出窗口找出「父窗口重載完成」?
- 17. 如何在父窗口關閉時從子窗口訪問父窗口方法?
- 18. 當父窗口是WPF時居中WinForm的子窗口
- 19. 如何在彈出窗口中打開彈出窗口?
- 20. Android彈出窗口在彈出窗口外彈出時解僱
- 21. 在JavaScript中打開子彈出窗口後,如何從子窗口訪問父窗口?
- 22. 彈出窗口:當彈出彈出窗口時關閉彈出
- 23. 如何在android中創建彈出窗口模式窗口
- 24. 如何打開彈出窗口並在關閉彈出窗口後在父窗口中完全回發
- 25. 如何父窗口的子窗口
- 26. 在javascript中關閉父窗口時如何關閉子窗口?
- 27. Silverlight子窗口父窗口
- 28. 父窗口和子窗口
- 29. 如何在彈出窗口的父窗口中實現反向計時器?
- 30. 如何在彈出窗口刷新後從父窗口訪問彈出的DOM?
這個工作非常適合我。 '窗口darkwindow =新窗口() { 背景= Brushes.Black, 不透明度= 0.8, AllowsTransparency =真, WindowStyle = WindowStyle.None, 的WindowState = WindowState.Maximized, 最頂層=真 }; darkwindow.Show(); un.ShowDialog(); darkwindow.Close();' –