using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Text;
using System.Windows.Forms; namespace TransparentPanelTest
{
public class TransparentPanel : Control
{
private Color _borderColor;
private int _borderWidth = 1;
private DashStyle _borderStyle = DashStyle.Solid;
private int _opacity = 125; public TransparentPanel()
{ } #region Property
[Category("Custom"), Description("Border Color")]
public Color BorderColor
{
set { _borderColor = value; }
get { return _borderColor; }
} [Category("Custom"), Description("Border Width"), DefaultValue(1)]
public int BorderWidth
{
set
{
if (value < 0) value = 0;
_borderWidth = value;
}
get { return _borderWidth; }
} [Category("Custom"), Description("Border Style"), DefaultValue(DashStyle.Solid)]
public DashStyle BorderStyle
{
set { this._borderStyle = value; this.Invalidate(); }
get { return this._borderStyle; }
} [Bindable(true), Category("Custom"), DefaultValue(125), Description("背景的透明度. 有效值0-255")]
public int Opacity
{
get { return _opacity; }
set
{
if (value > 255) value = 255;
else if (value < 0) value = 0;
_opacity = value;
this.Invalidate();
}
}
#endregion protected override void OnPaintBackground(PaintEventArgs e)
{
//do not allow the background to be painted
} protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT
return cp;
}
} protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
if (this._opacity > 0)
{
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(this._opacity, this.BackColor)),
this.ClientRectangle);
}
if (this._borderWidth > 0)
{
Pen pen = new Pen(this._borderColor, this._borderWidth);
pen.DashStyle = this._borderStyle;
e.Graphics.DrawRectangle(pen, e.ClipRectangle.Left, e.ClipRectangle.Top, this.Width - 1, this.Height - 1);
pen.Dispose();
}
} }
}

c# 可以设置透明度的 Panel 组件的更多相关文章

  1. easyUI panel组件

    easyUI panel组件: 属性的使用: <!DOCTYPE html> <html lang="en"> <head> <meta ...

  2. Javascript - ExtJs - Ext.form.Panel组件

    FormPanel组件(Ext.form.FormPanel) logogram:Ext.form.Panel | xtype:form Ext.form.Panel.配置 frame }//旗下所有 ...

  3. android 控件设置透明度

    问题:java文件中引用组件设置透明度:mGuideLayout.getBackground().setAlpha(125); 一直报null 修改办法:对应的布局文件中添加 android:back ...

  4. css中怎么设置透明度的问题

    小伙伴们是不是在找怎么样去设置页面的透明度的方法呢...别找了,我这儿就有,而且肯定够用了. 我自己会用到的就有两种,可以和大家分享一下. 1.用opcity的方法去设置透明度.代码如下: .div ...

  5. IOS 设置透明度导致底层View始终可见

    正确效果如图:下面的toolBar应该看不见它下面的View, 避免方法:[self.view  addSubView:aSubView];这个aSubView一定不能设置不透明度,应将其设置为Cle ...

  6. cocos2dx对所有子节点设置透明度

    看到cocos2dx2.2.5发布了,修复了输入框的bug,于是我们的项目也升级到了2.2.5, 升级过程还是比较顺利,没想到后来发现设置透明度无效了. 经过调试发现要调用一下setCascadeOp ...

  7. java 图片加水印,设置透明度。说明非常具体

    package com.yidao.common; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...

  8. sublime text3使用插件SublimeTextTrans设置透明度

    推荐一款在windows上设置sublime2和sublime3背景透明度的插件:SublimeTextTrans, 下载地址:https://github.com/vhanla/SublimeTex ...

  9. (求助)对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知

    对某一颜色,设置透明度 alpha 后,其他使用该颜色的地方 受到影响!!!!原因未知,有谁碰到过这样的问题?????? 测试了以下三款手机,结果如下: 1.android 4.4.2: 不受影响 2 ...

随机推荐

  1. 《JS高程》JS-Object对象整理

    继上篇<JS高程>对象&原型笔记,对JavaScript中的Object对象进行了整理,梳理一遍~ 参考文章:详解Javascript中的Object对象 ------------ ...

  2. dede cms列表页调用文章简介(借鉴)

    {dede:list pagesize='8' infolen='50'}<a href="[field:arcurl/]">[field:title/][内容调用代码 ...

  3. PAT (Basic Level) Practise:1013. 数素数

    [题目连接] 令Pi表示第i个素数.现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数. 输入格式: 输入在一行中给出M和N,其间以空格分隔. 输出格式: 输出从PM到 ...

  4. 关于环境变量PATH的几点注意事项

    查看执行文件路径变量PATH的内容可用echo $PATH.echo表示显示打印之意,$表示后接的是变量. 如下图所示,其中每个目录中间用冒号(:)来隔开,每个目录是有顺序之分的: 如果预修改PATH ...

  5. Java 存储过程调用

    //配置文件 private static ClientServiceConfigUtil configUtil = new ClientServiceConfigUtil("/Databa ...

  6. 递归神经网络(RNN)简介(转载)

    在此之前,我们已经学习了前馈网络的两种结构--多层感知器和卷积神经网络,这两种结构有一个特点,就是假设输入是一个独立的没有上下文联系的单位,比如输入是一张图片,网络识别是狗还是猫.但是对于一些有明显的 ...

  7. 让Windows Server 2008 + IIS 7+ ASP.NET 支持10万并发请求(转载)

    转自:http://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html 今天下午17点左右,博客园博客站点出现这样的错误信息: Error Sum ...

  8. 卸载linux自带版本JDK

    1)卸载系统自带的jdk版本:    查看自带的jdk:    #rpm -qa|grep gcj    可能看到如下类似的信息:    libgcj-4.1.2-44.el5    java-1.4 ...

  9. SpringMVC给外部资源加版本号避免缓存

    一.属性文件:version.properties ->内容:version=201608  二.java代码 public class configVersion implements Ser ...

  10. ASM磁盘组空间不足--ORA-15041:DISGROUP DATA space exhausted (生产库案例)

    原创作品,出自 "深蓝的blog" 博客,深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47277715 近日 ...