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 左键单击弹出菜单 ContextMenu
原文:WPF 左键单击弹出菜单 ContextMenu WPF中的ContextMenu在XAML中可直接做出来,但是仅限于右键弹出菜单,如果需要添加左键弹出功能,只需要在事件中添加Click事件 XMAL代码如下 ...
2781 0
|
C# 数据可视化 开发工具
WPF实现选项卡效果(1)——使用AvalonDock
原文:WPF实现选项卡效果(1)——使用AvalonDock 简介   公司最近一个项目,软件采用WPF开发,需要实现类似于VS的选项卡(或者是浏览器的选项卡)效果。
2115 0
|
9月前
|
C#
WPF文本框限制
WPF文本框限制
49 0
|
C++
基于MFC实现选项卡控件练习
基于MFC实现选项卡控件练习
53 0
基于MFC实现选项卡控件练习
|
容器 网络架构 C#
WPF 控件库——可拖动选项卡的TabControl
原文:WPF 控件库——可拖动选项卡的TabControl 一、先看看效果   二、原理 1、选项卡大小和位置   这次给大家介绍的控件是比较常用的TabControl,网上常见的TabControl样式有很多,其中一部分也支持拖动选项卡,但是带动画效果的很少见。
1452 0
|
C# 索引
WPF实用指南二:移除窗体的图标
原文:WPF实用指南二:移除窗体的图标 WPF没有提供任何功能来移除窗体上的icon图标。一般的做法是设置一个空白的图标,如下图1: 这种做法在窗体边框与标题之间仍然会保留一片空白。
1130 0
|
C#
winform,wpf全屏 还显示任务栏的解决方法
原文:winform,wpf全屏 还显示任务栏的解决方法 以wpf为例: 全屏代码: this.Topmost = true; this.WindowStyle = System.Windows.WindowStyle.
1738 0
|
C#
C#或者WPF中让某个窗体置顶
原文:C#或者WPF中让某个窗体置顶 前记:在工作中有个需求,要求不管到那个界面,我必须让一个浮动条(其实是个窗体)置顶。
2033 0
|
C#
WPF 自定义窗口关闭按钮
原文:WPF 自定义窗口关闭按钮 关闭图标设计主要涉及主要知识点: 1、Path,通过Path来画线。当然一般水平、竖直也是可以用Rectangle/Border之类的替代      一些简单的线条图标用Path来做,还是很方便的。
1147 0