WPF蒙板弹窗
由于界面设计需要,要给弹窗添加蒙板效果,在百度和google搜索了半天,竟然没有一个满意的方案,最后只能自己想办法实现了一个,原理还是比较简单的,现在分享给大家。
先看一下效果。。
原理其实很简单,启动项目的时候,先在主窗体最根部的Grid 添加一个控件,设置好颜色和透明度,隐藏:
<Grid>
<Button Content="测试弹窗" Width="50" Height="20" Click="Button_Click"/>
<StackPanel x:Name="spMasking" Opacity="0.4" Background="Black" Visibility="Collapsed" />
</Grid>
在这里我用的stack panel,具体什么都没影响。黑色背景0.4透明度刚好呈现蒙板效果。
需要蒙板弹窗的时候,调用方法
public static void ShowDialog(Window owner, Window window)
{
StackPanel spMasking = ControlHelper.GetChildObject<StackPanel>(owner, "spMasking");
spMasking.Visibility = Visibility.Visible;
window.ShowDialog();
}
需要关闭蒙板效果的时候,调用方法
public virtual void ClearMask(object sender, EventArgs e)
{
var owner = Application.Current.MainWindow;
StackPanel spMasking = ControlHelper.GetChildObject<StackPanel>(owner, "spMasking");
spMasking.Visibility = Visibility.Collapsed;
}
这样即可实现一个蒙板弹窗
有同学可能要问,这样的话,窗体最上面一行的标题,放大缩小按钮,并没有被挡住。这里,我的做法是是隐藏掉了默认的样式,自己应用Grid封装了新的自定义样式,然后应用Grid.ColumnSpan Grid.RowSpan跨列实现蒙板遮挡,如果有遇到问题的伙伴欢迎留言。
示例代码链接: https://pan.baidu.com/s/1eS2B5ZW 密码: 2kmf
WPF蒙板弹窗的更多相关文章
- 遮罩 HUD 指示器 蒙板 弹窗
遮罩 HUD 指示器 蒙板 弹窗 UIAlertView的使用<代理方法处理按钮点击> UIAlertView *alertView = [[UIAlertView alloc] init ...
- WPF 用Clip属性实现蒙板特效
原文:WPF 用Clip属性实现蒙板特效 上一篇,已简单介绍Clip属性的用法,这一篇用它来实现简单蒙板功能,很简单,直接上代码 <Window x:Class="擦除效果.MainW ...
- WPF通过不透明蒙板切割显示子控件
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Backspace110/article/ ...
- WPF弹出带蒙板的消息框
效果图 思路 拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容. 关闭时反向操作. 代码 消息窗弹出时 /// <summary> /// 弹出 ...
- SVG 2D入门9 - 蒙板
SVG支持的蒙板 SVG支持多种蒙板特效,使用这些特性,我们可以做出很多很炫的效果.至于中文中把mask叫做"蒙板"还是"遮罩"就不去区分了,这里都叫做蒙板吧. ...
- NeHe OpenGL教程 第二十课:蒙板
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 利用 js 实现弹出蒙板(model)功能
关于 js 实现一个简单的蒙板功能(model) 思路: 创建一个蒙板, 设置蒙板的堆叠顺序保证能将其它元素盖住 position: absolute; top: 0; left: 0; displa ...
- CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板。
CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板. CLIP PATH (MASK) GENERATO ...
- cocos2d-x之蒙板,局部高亮可点,CCRenderTexture
转自:http://www.2cto.com/kf/201207/144656.html 蒙板,局部高亮可点的用处大多是在新手引导的时候,引导玩家一步一步的走游戏的操作流程. 之前写了一个cocos2 ...
随机推荐
- 前端性能优化--图片懒加载(lazyload image)
话说前头: 上次写了一篇webpack的学习心得,webpack能做到提升前端的性能,其模块打包最终生成一个或少量的文件能够减少对服务端的请求.除此之外,本次的图片懒加载(当然不仅限于图片,还可以有视 ...
- 关于移动端自动化测试-Appium的搭建
web端我们常用的开源自动化用的是selenium,而移动端我们选择的是Appium,当然也可以使用monkey或者阿里的macaca,他们在理论上都使用了webdriver: 关于Appium环境的 ...
- select可选择、同时可自行输入
HTML部分: <li class="bl-form-group"> <label>诊断医生</label> <div class=&qu ...
- (转)FastJson---高性能JSON开发包
场景:javaBean对象转化为json对象! 1 Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发.1.遵循http://json.org标准,为其官 ...
- win7下从ruby源代码编译安装
工作中需要在c++代码中嵌入ruby c api,然而在vs工程中编译失败,所以现在通过手动从源代码编译ruby寻找原因(之前使用rubyinstaller安装). 先从官网下载ruby 2.4. ...
- Numpy 操作
一.Numpy 属性 # 列表转化为矩阵 In []: arr = np.array([[,,],[,,]]) In []: arr Out[]: array([[, , ], [, , ]]) 1, ...
- 用vue写添加数据、删除数据、筛选数据表格
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- iPhone 尺寸
http://tool.lanrentuku.com/guifan/ui.html 这是本人复制的链接,,
- Apache POI 一键上传(导入excel文件到数据库)
import cn.XXXX.bos.utils.PinYin4jUtils; import org.apache.commons.lang3.StringUtils; // HSSF:操作07版本之 ...
- css3布局属性flex
html代码如下: <ul class="ul_box"> <li><a href="#">html</a>&l ...