您的足迹:首页 > 未分类 >WinForm使用简单的方法实现完美遮罩的效果

WinForm使用简单的方法实现完美遮罩的效果


QQ截图20160318182149.png

图1

效果如图1。

在开发winform程序的时候,有些情况下,我们不希望用户随便点击,但是也想让用户可以看到具体的效果,这个时候我们想到了类似网页会有遮罩层这种功能,那么我们可以自己仿作一个。


博主本人看了网上有些方法,例如:博主june的采用自定义控件的方法,但是自定义控件没法设置透明的效果,必须做一些透明度的重制,而且在不少情况下难以使用,或者实现效果不好。


博主才用的方法比较原理很简单,设置Form的透明度和颜色,在把它指定显示在相关窗体上。

由于各种协调问题,博主还是研究了好几天,但总算不负众望。


实现过程:

1.设置Form的透明度和颜色等相关属性。

新建一个Form设置名称为ShadeLayer,其他属性如图2:

QQ截图20160318183514.png

图2

在初始化的时候,代码如下:


    public ShadeLayer()
        {
            InitializeComponent();

            this.BackColor = Color.FromArgb(79, 79, 79);
            this.ShowInTaskbar = false;
        }
一个是设置背景色,一个是不现实在任务栏中。


好了设置完毕。


2.调用,代码如下:


                        if (Application.OpenForms[i].Visible)
                        {
                            shadeLayer = new ShadeLayer();
                            shadeLayer.Tag = Application.OpenForms[i].Text;
                            shadeLayer.Location = Application.OpenForms[i].Location;
                            shadeLayer.Width = Application.OpenForms[i].Width;
                            shadeLayer.Height = Application.OpenForms[i].Height;
                            shadeLayer.Show(Application.OpenForms[i]);
                        }

设置相关属性值,shadeLayer.Show的时候,设置它的主窗体,这样就会显示在窗体之上了。
3.关闭,哈哈,这个不用多说了吧,一个Close()方法就能解决。 简单方便。



本博客所有文章如无特别注明均为原创。作者:cc复制或转载请以超链接形式注明转自 我的博客
原文地址《WinForm使用简单的方法实现完美遮罩的效果

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)