WPF弹出带蒙板的消息框

简介: 原文:WPF弹出带蒙板的消息框效果图   思路 拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容. 关闭时反向操作.    代码 消息窗弹出时 1 /// 2 /// 弹出消息框 3 /// 4 /// ...
原文: WPF弹出带蒙板的消息框

效果图

 

思路

拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容.

关闭时反向操作.

 

 代码

消息窗弹出时

 1 /// <summary>
 2 /// 弹出消息框
 3 /// </summary>
 4 /// <param name="message">消息</param>
 5 /// <param name="owner">父级窗体</param>
 6 public static void ShowDialog(string message, Window owner)
 7 {
 8     //蒙板
 9     Grid layer = new Grid() { Background = new SolidColorBrush(Color.FromArgb(128, 0, 0, 0)) };
10     //父级窗体原来的内容
11     UIElement original = owner.Content as UIElement;
12     owner.Content = null;
13     //容器Grid
14     Grid container = new Grid();
15     container.Children.Add(original);//放入原来的内容
16     container.Children.Add(layer);//在上面放一层蒙板
17     //将装有原来内容和蒙板的容器赋给父级窗体
18     owner.Content = container;
19 
20     //弹出消息框
21     MessageBox box = new MessageBox() { Owner = owner };
22     box.tbc_message.Text = message;
23     box.ShowDialog();
24 }

消息框关闭时

 1 /// <summary>
 2 /// 窗体关闭事件
 3 /// </summary>
 4 private void Window_Closed(object sender, EventArgs e)
 5 {
 6     //容器Grid
 7     Grid grid = this.Owner.Content as Grid;
 8     //父级窗体原来的内容
 9     UIElement original = VisualTreeHelper.GetChild(grid, 0) as UIElement;
10     //将父级窗体原来的内容在容器Grid中移除
11     grid.Children.Remove(original);
12     //赋给父级窗体
13     this.Owner.Content = original;
14 }

源码下载:MessageBoxWithLayer.zip

目录
相关文章
|
C#
WPF 用Clip属性实现蒙板特效
原文:WPF 用Clip属性实现蒙板特效 上一篇,已简单介绍Clip属性的用法,这一篇用它来实现简单蒙板功能,很简单,直接上代码                                ...
1653 0
|
6月前
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库
387 0
|
6月前
|
C#
浅谈WPF之装饰器实现控件锚点
使用过visio的都知道,在绘制流程图时,当选择或鼠标移动到控件时,都会在控件的四周出现锚点,以便于修改大小,移动位置,或连接线等,那此功能是如何实现的呢?在WPF开发中,想要在控件四周实现锚点,可以通过装饰器来实现,今天通过一个简单的小例子,简述如何在WPF开发中,应用装饰器,仅供学习分享使用,如有不足之处,还请指正。
142 1
|
C# Windows
WPF技术之RichTextBox控件
WPF RichTextBox是Windows Presentation Foundation (WPF)中提供的一个强大的文本编辑控件,它可以显示富文本格式的文本,支持多种文本处理操作。
600 0
|
3月前
|
开发框架 缓存 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
|
3月前
|
C# 开发者 Windows
一款基于Fluent设计风格、现代化的WPF UI控件库
一款基于Fluent设计风格、现代化的WPF UI控件库
|
3月前
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
191 1
|
3月前
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
112 0
|
3月前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
68 0
|
3月前
|
开发框架 前端开发 JavaScript
WPF应用开发之控件动态内容展示
WPF应用开发之控件动态内容展示