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

时间: 2024-10-28 11:37:39

WPF蒙板弹窗的相关文章

遮罩 HUD 指示器 蒙板 弹窗

遮罩 HUD 指示器 蒙板 弹窗 UIAlertView的使用<代理方法处理按钮点击> UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"警告" message:@"是否要删除它?" delegate:self cancelButtonTitle:@"是" otherButtonTitles:@"否", nil]; //加登录框 alertV

WPF弹出带蒙板的消息框

效果图 思路 拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容. 关闭时反向操作. 代码 消息窗弹出时 1 /// <summary> 2 /// 弹出消息框 3 /// </summary> 4 /// <param name="message">消息</param> 5 /// <param name="owner">父级窗体</param> 6

蒙板 模态对话框

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <style> 7 #maskBac

Ps技巧之创建等比例蒙板

今天学到一个新技能,创建等比例蒙板.比如画了一个矩形,想要创建小一号的蒙板,达到框的效果,就可以这样做: 1.cmd/ctrl+缩略图(将图层内容载入选区): 2.选择(select)>修改(modify)>扩展(expand)/收缩(contract): 3.输入扩展/收缩的像素(生成所需大小的选区): 4.点击新建蒙板.

R 中国陆地蒙板

1.从http://www.gadm.org/country  下载China和Taiwan的R格式的level 0地图 CHN_adm0.rds, TWN_adm0.rds 2.蒙板 r <- raster(nrow=1201,ncol=1401,ext=extent(70,140,0,60)) chn_mask <- rasterize(readRDS("e:/CHN_adm0.rds"),r) twn_mask <- rasterize(readRDS(&quo

利用jQuery实现,蒙板随鼠标滑入滑出

今天学习了jQuery的一些知识点,做了一个练习:实现蒙板随鼠标移动,从元素的四个方向滑入滑出.如图: jQuery知识点: 定位:获取相对于父元素的偏移量           position().left           position().top 获取元素相对于当前窗口的偏移量           offset().left           offset().top 步骤: 1.创建父元素.当前对象.蒙板 代码如下: <div class="wrap">  

iOS开发——实战技术OC篇&amp;关于蒙板和弹出菜单

关于蒙板和弹出菜单 一:关于蒙板 蒙板的作用一般就是用来实现不能做其他操作还有一些模糊效果提示用户 我们只需要自定义一个View,并且创建两个类方法用来给外界调用实现显示和隐藏 + (void)show; + (void)hide; 显示:直接添加到window上,并且设置和window同样大小,然后设置相应的透明度(alpla) 1 + (void)show 2 3 { 4 5 6 7 8 9 iCocosCover *cover = [[self alloc] init]; 10 11 12

超级猜图,小case,运用知识点: storyboard block封装变化点 蒙板 模态model

最近这几天,不知道突然玩超级猜图玩疯了,最后觉得还是不过瘾,干脆下了ipa,运用素材自己写了一个,没想到居然实现了大部分功能,真开心,直接上图:     上代码,不足之处,还望牛人支出,不胜感激: 1 #import "JHViewController.h" 2 #import "JHAppDate.h" 3 4 @interface JHViewController () 5 { 6 NSArray *_arrayImage; // 内容数组 7 int _ind

显示某个区域2,蒙板

C#中图片处理中定义显示区域[或者可以称为蒙板效果] public Image MaskPic(string filename,params Point[] p) { //获取需要被蒙板的图片 Image image = System.Drawing.Image.FromFile(filename); //建立一个蒙板一样大小的画布 Bitmap bit = new Bitmap(image.Width, image.Height); //对这个空图片建立GDI+对象: System.Drawi