关于透明度的设置

问题描述

小弟有一个程序,是在一个Panel上将摄像机的图像显示出来。现在启动时是没有图像的,Panel的底色为黑色,同时在Panel上加载一个工具条,类似播放器的那种。现在本人使用的是UserControl,加载成功后工具条透明,可以看到上面的按钮。但是摄像机图像点播成功后,工具条就有了黑色背景。如何在图像点播成功后工具条仍然为透明色?

解决方案

解决方案二:
你把工具条所在的容器和摄像机显示图像所在的容器分开试试让第二个容器放在第一个里面
解决方案三:
引用1楼andy1020tc的回复:

你把工具条所在的容器和摄像机显示图像所在的容器分开试试让第二个容器放在第一个里面

要是能将2者分离也不会出现这种问题啊。我现在因为有很多Panel需要点播的,对图像点播的就有工具条,没有点播就没有。跟播放器的工具条比较类似啊
解决方案四:
用jquery试试吧,好像有这样的范例
解决方案五:
引用3楼ordimega的回复:

用jquery试试吧,好像有这样的范例

winForm可以用JQuery吗?
解决方案六:
.NET中的透明不是真正的透明实际上是自动把控件所在容器的前景色修改成了控件的背景色。所以如果容器背景色变了后,控件看上去就不透明了。
解决方案七:
引用5楼niaoked的回复:

.NET中的透明不是真正的透明实际上是自动把控件所在容器的前景色修改成了控件的背景色。所以如果容器背景色变了后,控件看上去就不透明了。

那么如何在容器背景色变了后,控件看上去依然透明呢?背景会实时变化
解决方案八:
control1.BackColor=Color.FromArgb(透明度-int,255,255,255);MSDN:
解决方案九:
引用7楼mking0412的回复:

control1.BackColor=Color.FromArgb(透明度-int,255,255,255);MSDN:http://msdn.microsoft.com/zh-cn/library/at1k42eh.aspx

经过试验还是不行呢?请问还有什么方法啊
解决方案十:
引用6楼wz5615的回复:

引用5楼niaoked的回复:.NET中的透明不是真正的透明实际上是自动把控件所在容器的前景色修改成了控件的背景色。所以如果容器背景色变了后,控件看上去就不透明了。那么如何在容器背景色变了后,控件看上去依然透明呢?背景会实时变化

背景变化的时候需要刷新吧。或者背景每变化一次你就在事件里重新设置一下透明(透明总是相对的)。
解决方案十一:
你可以参考"酷我"播放器,它是N个层窗体叠加的,同时使用了"不能被前置"的窗体扩展样式.关键字:UpdateLayeredWindow
解决方案十二:
引用9楼mking0412的回复:

引用6楼wz5615的回复:引用5楼niaoked的回复:.NET中的透明不是真正的透明实际上是自动把控件所在容器的前景色修改成了控件的背景色。所以如果容器背景色变了后,控件看上去就不透明了。那么如何在容器背景色变了后,控件看上去依然透明呢?背景会实时变化背景变化的时候需要刷新吧。或者背景每变化一次你就在事件里重新设置一下透明(透明总是相……

不是吧,我点播的即时刷新的啊,怎么能一直不停的刷新透明呢
解决方案十三:
引用10楼dylike的回复:

你可以参考"酷我"播放器,它是N个层窗体叠加的,同时使用了"不能被前置"的窗体扩展样式.关键字:UpdateLayeredWindow

这个实在创建的时候用吗?背景一直在即时刷新,会不会背景残留
解决方案十四:
不会残留,因为层窗体不属于那个播放画面所在的窗体,是独立的。
解决方案十五:
NET中的透明不是真正的透明实际上是自动把控件所在容器的前景色修改成了控件的背景色。所以如果容器背景色变了后,控件看上去就不透明了。
解决方案:
引用6楼wz5615的回复:

引用5楼niaoked的回复:.NET中的透明不是真正的透明实际上是自动把控件所在容器的前景色修改成了控件的背景色。所以如果容器背景色变了后,控件看上去就不透明了。那么如何在容器背景色变了后,控件看上去依然透明呢?背景会实时变化

没得其它办法,只有自己用GDI+画一个进度条
解决方案:
下面是System.Windows.Control的绘制透明色的源代码,你可以参考一下:internalvoidPaintTransparentBackground(PaintEventArgse,Rectanglerectangle,System.Drawing.RegiontransparentRegion){Graphicsg=e.Graphics;ControlparentInternal=this.ParentInternal;if(parentInternal!=null){if(Application.RenderWithVisualStyles&&parentInternal.RenderTransparencyWithVisualStyles){System.Drawing.Drawing2D.GraphicsStategstate=null;if(transparentRegion!=null){gstate=g.Save();}try{if(transparentRegion!=null){g.Clip=transparentRegion;}ButtonRenderer.DrawParentBackground(g,rectangle,this);return;}finally{if(gstate!=null){g.Restore(gstate);}}}Rectanglebounds=newRectangle(-this.Left,-this.Top,parentInternal.Width,parentInternal.Height);RectangleclipRect=newRectangle(rectangle.Left+this.Left,rectangle.Top+this.Top,rectangle.Width,rectangle.Height);HandleRefhDC=newHandleRef(this,g.GetHdc());try{using(WindowsFormsUtils.DCMappingmapping=newWindowsFormsUtils.DCMapping(hDC,bounds)){using(PaintEventArgsargs=newPaintEventArgs(mapping.Graphics,clipRect)){if(transparentRegion!=null){args.Graphics.Clip=transparentRegion;args.Graphics.TranslateClip(-bounds.X,-bounds.Y);}try{this.InvokePaintBackground(parentInternal,args);this.InvokePaint(parentInternal,args);}finally{if(transparentRegion!=null){args.Graphics.TranslateClip(bounds.X,bounds.Y);}}}}}finally{g.ReleaseHdcInternal(hDC.Handle);}}else{g.FillRectangle(SystemBrushes.Control,rectangle);}}

时间: 2024-09-01 04:21:09

关于透明度的设置的相关文章

android 对话框弹出位置和透明度的设置具体实现方法

例如,屏幕的上方或下方.要实现这种效果.就需要获得对话框的Window对象,获得这个Window对象有多种方法.最容易的就是直接通过AlertDialog类的getWindow方法来获得Window对象. 复制代码 代码如下: AlertDialog dialog = new AlertDialog.Builder(this).setTitle("title") .setMessage("message").create(); Window window = ale

android 对话框弹出位置和透明度的设置具体实现方法_Android

例如,屏幕的上方或下方.要实现这种效果.就需要获得对话框的Window对象,获得这个Window对象有多种方法.最容易的就是直接通过AlertDialog类的getWindow方法来获得Window对象. 复制代码 代码如下: AlertDialog dialog = new AlertDialog.Builder(this).setTitle("title")                       .setMessage("message").create(

PPT照片透明度怎么设置?

  1. 这是原来的情况: 2. 鼠标右键点击图,然后选择最下面一项:Format Picture. 3. 到Fill - > Picture or Texture fill - > Transparency 调整到合适的程度即可.

win8系统怎样使用Word设置图片透明度?

  win8系统怎样使用Word设置图片透明度?           具体方法如下: 1.首先点击"插入"选项卡的"插图"选项组中的"形状",选中矩形; 2.按住鼠标左键,进行托页,绘制矩形; 3.然后点击"形状填充"按钮,在弹出的下拉菜单中单击"图片"; 4.在弹出的"插入图片"对话框中,选中"雪景"这张图片,单击"插入"; 5.然后单击&quo

原生js和jquery中有关透明度设置的相关问题

 设置透明度问题,比如图片的淡入淡出效果.下面我介绍一下在原生js和jQuery中设置透明度的相关问题和注意点 在日常开发的网站中,常常会用到设置透明度问题,最简单的就是图片的淡入淡出效果.下面我介绍一下在原生js和jQuery中设置透明度的相关问题和注意点:    1 透明度样式设置  透明度在IE浏览器和其他相关浏览器中的设置方法不太相同,IE使用filter:alpha属性,firefox使用opactiy属性,下面示例设置透明度为30%:  IE:filter: alpha(opacit

android-AlertDialog的设置按钮和透明度的问题

问题描述 AlertDialog的设置按钮和透明度的问题 初学者. 如果声明的时候用AlertDialog.Builder.下面的getwindow方法就不能用.(用来设置dialog透明度的)但如果用AlertDialog声明.就不能设置按钮了.我想问要设置按钮和设置透明度.这个应该怎么写.还有为什么这样写会出错.AlertDialog和AlertDialog.Builder区别在哪?非常感谢大家能回答! 解决方案 android AlertDialog透明度的设置透明度设置的问题

原生js和jquery中有关透明度设置的相关问题_javascript技巧

在日常开发的网站中,常常会用到设置透明度问题,最简单的就是图片的淡入淡出效果.下面我介绍一下在原生js和jQuery中设置透明度的相关问题和注意点: 1 透明度样式设置 透明度在IE浏览器和其他相关浏览器中的设置方法不太相同,IE使用filter:alpha属性,firefox使用opactiy属性,下面示例设置透明度为30%: IE:filter: alpha(opacity:30): firefox:opacity(0.3): 2 原生js设置透明度 为了兼容IE与其他浏览器对透明度的设置,

WPS演示技巧:利用透明度变化做单选题

注:有声音反馈,"你真聪明"或"错了,不过没关系,重来一遍." 1.新建演示文稿,模板选用"教程模板",版式为"空白".依次单击"插入"--"文本框"--"横向"命令,鼠标变成十字型,按住左键拖曳,绘制出一个文本框,输入文字"1.奥林匹克格言的内容是( ).",设置字体为"微软雅黑",字号设为32号,再添加文字的阴影效果.通过拖

PPT时如何设置上层图片底色部分为透明

  使用PPT的朋友都想知道图片的透明度如何设置?PPT2010中没有直接可以改变图片透明度的选项.不过可以通过以下几个途径: 途径一:任务栏中--设计,其右上角有背景样式选项--设置背景样式;或者直接在空白版面上右击最后一个选项即为设置背景样式.然后点击图片填充,选择要插入的图片,可以设置透明度. 途径二:可以先在图片处理软件中处理好再进行插入. 途径三:PPT2010中双击插入图片,其图片工具中提供了很多现成的图片效果,以及图片颜色选项,这个虽然不是很精准,但是其中有几款效果可以类似达到降低