winform panel 半透明问题

maoshulin 2009-12-31 10:39:36
是控件半透明,不是窗体半透明!

panel下面有一个axwebbrower控件,里面放有网页,我的目的是想让别人看到axwebbrower控件的网页,但是不想让别人点击
不一定要panel,其他只要能实现半透明即可!
效果如下:
...全文
1915 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
Evenin 2011-12-04
  • 打赏
  • 举报
回复
这个能解决你的问题
http://download.csdn.net/detail/evenin/3877455
背景透明Panel,可设置透明度
vpoint2009 2011-06-30
  • 打赏
  • 举报
回复
呵呵 winform引用wpf的控件就可以做到。
maoshulin 2010-01-04
  • 打赏
  • 举报
回复
算了,结贴了,感谢各位的帮助!
maoshulin 2010-01-04
  • 打赏
  • 举报
回复
新的问题出现了,按照yingkk的意思如果一个浏览器可以
但是我下面有 好几个webbrower,我想看到实时的情况必须不断的生成图像
这样势必会浪费很多资源在这个操作上面
能否有人知道重绘半透明的panel,可能效果会理想点。
yingkk 2010-01-03
  • 打赏
  • 举报
回复
maoshulin 2010-01-03
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 yingkk 的回复:]

[/Quote]
yingkk
就是你的这个效果,能不能把源码发我看看
你上次发我的邮件我没办法编译。。。
邮箱:75077027@qq.com
maoshulin 2010-01-02
  • 打赏
  • 举报
回复
考虑过,也试过了,就是子窗体
效果是基本差不多,但是上面的窗体可以关闭的
基本效果不理想

yingkk 的思路是对的,但是我没做出来
guojh021 2010-01-02
  • 打赏
  • 举报
回复
你整个窗口好了.放在你现在这人窗口上面.
上下面窗口连动,呵呵
maoshulin 2010-01-02
  • 打赏
  • 举报
回复
#33楼
你的,可以覆盖,但是半透明度???如何实现
这个和panel基本差不多
dylike 2010-01-02
  • 打赏
  • 举报
回复
在WEBBROWSER控件位置旋转一个与其同等尺寸的Label控件(autosize=false),并且Label1.Bringtofront(前置).
maoshulin 2010-01-01
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 dylike 的回复:]
完全可以做到.只是如果这么做的话网页就无法滚动了
[/Quote]

网页我不要滚动,就是看到第一屏就可以了
如果可以发个代码给我可以吗?
maoshulin 2010-01-01
  • 打赏
  • 举报
回复
楼上的是div,这个透明度可以设置,这个知道的,你没有设置透明度
我说的是winform
dylike 2010-01-01
  • 打赏
  • 举报
回复
完全可以做到.只是如果这么做的话网页就无法滚动了
wclhack 2010-01-01
  • 打赏
  • 举报
回复
<div style="position:absolute;top:127px;left:40px; width:315px;height:132px; z-index:100;" id="div1">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr>
<td></td>
</tr>
</table>
</div>
yingkk 2009-12-31
  • 打赏
  • 举报
回复
15楼的方法,但是不需要隐藏axwebbrower,放上去覆盖置顶就行。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int i = 0;
public Form1()
{
InitializeComponent();
Application.Idle +=new EventHandler(Application_Idle);
}

void Application_Idle(object sender, EventArgs e)
{
panel1.Refresh();
Point StartPoint = panel1.PointToScreen(new Point(0, 0));
Bitmap capturedBMP =new Bitmap(panel1.Width, panel1.Height);
panel1.DrawToBitmap(capturedBMP, new Rectangle(0, 0, panel1.Width, panel1.Height));
Bitmap mixImage = new Bitmap(capturedBMP.Width, capturedBMP.Height);
Graphics g = Graphics.FromImage(mixImage);
float[][] colormatrix ={
new float[]{1,0,0,0,0},//代表了R
new float[]{0,1,0,0,0},//代表了G
new float[]{0,0,1,0,0},//代表了B
new float[]{0,0,0,0.6f,0},//代表了A
new float[]{0,0,0,0,1}
};
ColorMatrix cm = new ColorMatrix(colormatrix);
ImageAttributes imageAtt = new ImageAttributes();
imageAtt.SetColorMatrix(cm, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);

g.DrawImage(capturedBMP, new Rectangle(0, 0, capturedBMP.Width, capturedBMP.Height), 0, 0, capturedBMP.Width, capturedBMP.Height, GraphicsUnit.Pixel, imageAtt);
pictureBox1.Image = mixImage;

}

private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = i.ToString();
i++;
}

}
}
maoshulin 2009-12-31
  • 打赏
  • 举报
回复
#15楼确是是个思路,但是axwebbrower内容随时在变化。。。苦闷啊
好像要重写,但是我不会,希望高手指教!感谢不尽。。。
有没有写好的控件???
spring20130808 2009-12-31
  • 打赏
  • 举报
回复
向高手学习
卧_槽 2009-12-31
  • 打赏
  • 举报
回复
你的要求用控件是办不到了,我有别的办法实现你的需求
先,对axwebbrower截图,然后隐藏axwebbrower,最后在截图上绘制一个半透膜层,最后放到与axwebbrower一样大的picbox中,放在axwebbrower原来的位置,就实现了。

不过这对你来说可能有难度,看看别人有更好的办法没有吧,
cykevin 2009-12-31
  • 打赏
  • 举报
回复
好像是办不到的。。。
maoshulin 2009-12-31
  • 打赏
  • 举报
回复
不会没关系,cs我也不是高手
bs咱们也可以交流,方面以后再沟通,仍然要大大的谢谢!
加载更多回复(21)

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧