提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • Panel 设置 Transparent 属性之后会出现闪烁情况
  • 窗体加载防闪烁代码优化
  • 总结

前言

实现下图中panel控件半透明效果之前在别的项目用无边框窗体的Opacity属性实现过这种效果;现在想就一个窗体中实现,网上搜到用户控件的方法尝试了下,透明可以实现但是里面的button按钮无法实现透明;网上案例大部分提到利用颜色达到透明效果这种只是颜色透明;也搜到使用 Transparent 在碰到窗体有 PictureBox 控件时无法通明显示 PictureBox 的画面;搜到这里我想到 PictureBox 主要是放图片,而 Panel 也可以放图片,并且 Panel 控件是用来分组,它可以和内部的控件形成父子层关系。
基本思路:
用两个Panel控件组成父子关系即一个包含在另一个里面,两个BorderColor 属性都设置成 Transparent 达到子 Panel 控件在父 Panel 控件中全透明,这时候给父 Panel 控件设置一个背景图片,再给子 Panel 控件弄一个半通明图片的背景图。
下图是实现效果:


提示:这种方式就是用窗体控件自带的属性弄的,没什么代码,下面是我中途碰到的问题的解决代码

Panel 设置 Transparent 属性之后会出现闪烁情况

解决方法:创建一个NewPanel类,把下面代码黏贴到类中
代码如下(示例):

//窗体设计代码中将this.panel1 = new System.Windows.Forms.Panel(); 替换成 NewPanel(); 方式panel控件闪烁public class NewPanel : Panel{public NewPanel(){this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);this.SetStyle(ControlStyles.UserPaint, true);}}

按注释代码,找到窗体设计代码将Panel修改成NewPaenl

窗体加载防闪烁代码优化

我之前用的窗体加载防闪烁代码,必须在每个窗体中复制防闪烁的代码

代码如下(示例):

protected override CreateParams CreateParams{get{CreateParams cp = base.CreateParams;cp.ExStyle |= 0x02000000;return cp;}}

按照上面类的写进行了一下优化
代码如下(示例):

public class NewForm : Form{public NewForm(){}protected override CreateParams CreateParams{get{CreateParams cp = base.CreateParams;cp.ExStyle |= 0x02000000;return cp;}}}

优化后项目中那个窗体要加防闪烁功能采用继承即可实现


总结

以上就是今天要讲的内容,本文仅仅简单介绍了BorderColor中Transparent 的使用,中途网上搜索的时候被颜色透明,自定义控件,用户控件等很多五花八门的答案给迷惑了。有时候还是要静下心捋一捋,解决问题的思路很重要。
用户控件和组件类实现控件半透明

C# Panel半透明相关推荐

  1. Android Theme修改系统主题

    1,Theme 的作用范围 [1]Theme(主题)是针对窗体级别的,改变窗体样式,对整个应用或某个Activity存在全局性影响.  [2]主题依然在<style>元素里边申明,也是以同 ...

  2. ubuntu20.04安装之后之桌面美化(改ubuntu界面类win、dock风格等)

    本文系统:ubuntu20.04 linux学习:鸟哥的linux私房菜 文章目录 开头最重要 下面的应用除非说明都直接在新立得搜 桌面美化 开始管理ubuntu桌面 修改ubuntu桌面风格为win ...

  3. Android中Theme主题和Style样式使用介绍总结

    1.Theme主题 1.1.Theme主题作用范围 Theme主要是针对应用级别的或者说窗体级别,可以设置应用主题(应用换肤效果)和Activity的主题:主题是不能应用在某一个单独的View中:或者 ...

  4. 关于透明、半透明winform的实现

    前两个月由于项目需要,要求做一个半透明窗体,翻阅了很多网站都不尽人意,在吸取了众家之长后,终于得到了比较满意的答案,效果图如下 直接上代码 using System; using System.Col ...

  5. java jpanel 半透明_java – 透明JPanel

    我想创建一个半透明的JPanel.我通过简单地使用颜色构造函数的RGBA值来完成它,但问题是当我使用事件处理不正确地唤醒时.我的要求是一个半透明的Jpanel,当鼠标进入它的边框,这个面板变得可见,如 ...

  6. php imagecopy 用法,php使用imagecopymerge()函数创建半透明水印

    使用imagecopymerge() 函数创建半透明水印,供大家参考,具体内容如下 // 加载要加水印的图像 $im = imagecreatefromjpeg('photo.jpeg'); // 首 ...

  7. 覆盖半透明黑色CSS,通常用于弹窗提示、弹窗显示大图等情况的背景图层

    /*覆盖半透明黑色*/ :after { /*父元素需要 position: relative;*/content: '';background: rgba(0, 0, 0, 0.38);positi ...

  8. 为图片添加半透明遮罩效果

    平时为图片添加半透明遮罩效果,我的做法如下: 利用标签i实现背景半透明遮罩.当鼠标hover时, 提高i的背景色透明度值background-color: rgba(0, 0, 0, .6) < ...

  9. miui通知栏要点两下_MIUI免费主题分享,半透明通知栏很好看,另附壁纸!

    最近很少分享主题,主要原因是没发现太好的,甚至主题连一处漂亮的点都没有,不过还是有一款状态栏很精致的主题,这里分享大家,可用作混搭使用! 主题名:Blur 首先主题是免费的,也之所以免费并没有太多自定 ...

  10. Java控件模糊半透明_Android如何实现模糊的半透明窗口 | 学步园

    本示例使用自定义主题样式,实现模糊半透明的Activity. 1.  定义清单文件(AndroidManifest.xml) package="my.android.test" a ...

最新文章

  1. 安振平老师的4911号不等式问题的证明
  2. java隐藏方式运行,Java 数据隐藏和封装
  3. Java7里try-with-resources分析--转
  4. c语言 变量 定义 使用,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  5. STL源码剖析 数值算法 heap算法
  6. springCloud - 第13篇 - 服务监控 集群模式 Hystrix-turbine
  7. android frida 检测_Android 逆向 | Frida 是万能的吗? 检测 Frida 的几种办法
  8. java以正确的方式停止线程
  9. 内存碎片产生原因及解决方法
  10. Linux下文件、文件夹大小排序及文件内容排序
  11. 华为手机便签有扫描的功能么
  12. OpenCV学习(函数)
  13. 好嗨游戏:TapTap9.9分,《鸡你太美》这到底是什么魔鬼游戏?
  14. SOX的一些命令和kaldi使用sox音频数据增强
  15. 右键打开方式没有notepad++编辑器
  16. 【Python应用探索笔记二】百度语音合成与识别
  17. OpenGL with QtWidgets:练习之扑克翻转
  18. 读书笔记-人月神话6
  19. 【SSM+ElementUI】综合练习-Axios Mock EasyMock nodejs npm webpack vuecli restful 请求
  20. 2023最新Web前端面试题精选大全及答案(一)

热门文章

  1. 虚拟内存怎么设置最好?虚拟内存设置多少合适
  2. Python-人脸识别并判断表情 笑脸或非笑脸 使用笑脸数据集genki4k
  3. outlook 2016 添加126邮箱教程
  4. Windows 使用 ssh 命令行 通过密钥连接到 云服务器
  5. python3GUI--你喜欢的无损音乐下载工具(附源码)
  6. Unity C#编程优化——枚举
  7. GBase 8s 编写使用UDR(C/Java)
  8. win10桌面计算机图标隐藏,win10系统隐藏桌面单个图标的恢复方法
  9. 解决:“证书错误,导航已阻止”
  10. 一款经典的 jQuery Lightbox 灯箱效果