C# Winform 做半透明窗体.类似vista主题效果 标题栏是透明的。和边框也是透明的。我试了一下Opacity 属性。设
C# Winform 做半透明窗体. 类似vista主题效果 标题栏是透明的。和边框也是透明的。 我试了一下Opacity 属性。设置成 50% 。之后发现 确实是半透明了。 但是我发现窗体中的内容也是透明的了(包含在窗体上所有的控件)。 琢磨了一阵子,我又试了下TransparencyKey 这个属性。我弄了张半透明的图片。 然后把TransparencyKey 指定了对应的颜色。 运行起来。 半透明的图片又变成了不透明的了。 请问高手,如果用C#实现半透明(内容不透明)应该如何做呢?谁做过。[最优解释] 友情帮顶[其他解释] 顶一下[其他解释] 窗体全有PNG背景文件承载,PNG边缘做成透明的,这个窗体的边缘即透明,这种方法最为方便有效! 喜欢全部用代码实现的话,完全可以,比较麻烦![其他解释]
引用: 好像是基于GDI+的 你连看都麽看就下这结论,这句话我还特意用红色标了下,不用拉倒!
“The concept of creating a per-pixel-alpha blending window remains the same, the GDI function UpdateLayeredWindow. ”
[其他解释] http://d.download.csdn.net/down/1951167/pipi04132417
这里有我上传的CustomForm.dll文件,你一用就明白了,希望对你有帮助。
上个贴连接地址发错了
[其他解释] 你吧 内容 与 边框分开啊 ! 2个样式! 不可以吗?
[其他解释] 引用: 你吧 内容 与 边框分开啊 ! 2个样式!? ? ? 不可以吗? 怎么分开 ? 我就是在Winform上放了个面板。面板背景图片是一张半透明的图片。
我指定TransparencyKey不好用。用Opaticy更不好用。
内容和窗体能分开 ? 头一次听说。
[其他解释] 没人进。。自己顶起。
[其他解释] 怎么回事,这么大个论坛,连解决这个问题的人都没有,
怎么嫌弃分数少么,可以追加。急。。。
[其他解释] 帮顶一下,顺便说一下,如果没有画面美化功底用用C1的C1RibbonForm效果还是不错的~~
[其他解释] 引用: 帮顶一下,顺便说一下,如果没有画面美化功底用用C1的C1RibbonForm效果还是不错的~~ 地址给我下 , 可以么。 我就想实现个简单的效果。不太想用 3rd空件。
[其他解释] 好贴,留名关注。
[其他解释] up
[其他解释] //opacity属性会让窗体上所有的控件都变成透明的,所以我们可以这样办。 //代码如下: Form f = new Form(); //创建一个新窗体 Label lab = new Label(); //要显示的文本 void MainFormLoad(object sender, EventArgs e) { f.FormBorderStyle = FormBorderStyle.None; //设置窗体无边框 f.ShowInTaskbar = false; f.BackColor = Color.Red;f.TransparencyKey = f.BackColor; //让窗体透明 lab.Text = "我是在透明窗体上的不透明文本!"; lab.BackColor = Color.Transparent; //背景色透明 lab.Location = new Point(100,150); //调整在窗体上的位置 f.Controls.Add(lab); f.TopLevel = true; f.Show(); } void MainFormMove(object sender, EventArgs e) { f.Location = this.Location; }
[其他解释] 引用: C# code//opacity属性会让窗体上所有的控件都变成透明的,所以我们可以这样办。//代码如下: Form f=new Form();//创建一个新窗体 Label lab=new Label();//要显示的文本void MainFormLoad(object sender, EventArgs e) { f.FormBorderStyle= FormBorderStyle.None;//设置窗体无边框 f.ShowInTaskbar=false; f.BackColor= Color.Red;f.TransparencyKey= f.BackColor;//让窗体透明 lab.Text="我是在透明窗体上的不透明文本!"; lab.BackColor= Color.Transparent;//背景色透明 lab.Location=new Point(100,150);//调整在窗体上的位置 f.Controls.Add(lab); f.TopLevel=true; f.Show(); }void MainFormMove(object sender, EventArgs e) { f.Location=this.Location; } ? 给来个图把。 就是实现这效果。你看了就知道了。 呵呵。如果要用多个窗体做的话。我还用问么。
我想要的就是API或者GDI+的 高级一点的。 使之能在一个窗体上。
你看边栏的背景图片。和 时钟,日历的阴影效果。用你的代码貌似不行。。会有白边。。
[其他解释] up
[其他解释] 完美实现Alpha半透明窗体的C#源码
[其他解释] Window Hiding with C#
A Window Hider program that demonstrates many C# features
[其他解释] 顶
[其他解释] 来人绑定起来啊. 谢谢啊./
[其他解释] 引用: Window Hiding with C# A Window Hider program that demonstrates many C# features 看图片好象也是全局透明的.
[其他解释] 引用: Per Pixel Alpha Blend in C# Demonstrates how to create per pixel alpha blending windows 使用很简单,我刚试过,稍加改动即可作出相当PL的窗体效果,与QQ的透明窗体效果一样,原理也一样! 下面是一段 Introduction This is a port of my other article from C++/MFC to C#/Windows Forms. The concept of creating a per-pixel-alpha blending window remains the same, the GDI functionUpdateLayeredWindow. What changed ? ? * Image loading is handled by GDI+ classes (System.Drawing namespace). ? ? * No need to pre-multiply the rgb channels with the alpha channel. ? ? * No more support for PSP files. PNG file are the best choice. 好久没学C#
去看了看
好像是基于GDI+的
感觉不是很好···而且是要一个32位包含alpha通道的图片(PNG吧?)
用来画一个按钮好像又有点别扭··· 如果可以直接设置按钮属性就比较好 不知道SendMessage可以实现按钮的透明度调节吗? 在VC下经常可以用这个东西来调节一些属性,而且SetWindowLong也不错······ 但是不知道C#有这两个吗,没有就要引入dll了[其他解释] Per Pixel Alpha Blend in C# Demonstrates how to create per pixel alpha blending windows 使用很简单,我刚试过,稍加改动即可作出相当PL的窗体效果,与QQ的透明窗体效果一样,原理也一样! 下面是一段 Introduction This is a port of my other article from C++/MFC to C#/Windows Forms. The concept of creating a per-pixel-alpha blending window remains the same, the GDI function UpdateLayeredWindow. What changed * Image loading is handled by GDI+ classes (System.Drawing namespace). * No need to pre-multiply the rgb channels with the alpha channel. * No more support for PSP files. PNG file are the best choice. [其他解释] 自己在顶。[其他解释]
引用: 窗体全有PNG背景文件承载,PNG边缘做成透明的,这个窗体的边缘即透明,这种方法最为方便有效! 喜欢全部用代码实现的话,完全可以,比较麻烦! 方便给段代码么。。
[其他解释] 你这样试试看行不行,
1、创建一个窗体,在窗体中开始不加任何内容,将窗体设置成半透明的
2、创建一个用户控件,在用户控件中写你所有的正文内容
3、在前面的窗体加载事件中,将你的用户控件加载到你的窗体中
[其他解释] 自己在顶。
[其他解释] 帮你顶一下
[其他解释] 引用: 你这样试试看行不行, 1、创建一个窗体,在窗体中开始不加任何内容,将窗体设置成半透明的 2、创建一个用户控件,在用户控件中写你所有的正文内容 3、在前面的窗体加载事件中,将你的用户控件加载到你的窗体中 用户控件,就是窗体上的控件。
实现不了。 呵呵。 这方法我没看到什么区别么 - - !
[其他解释] 谢谢帮顶。
[其他解释] 过来学习,和你一样等待高手……
[其他解释] 引用: 引用: 窗体全有PNG背景文件承载,PNG边缘做成透明的,这个窗体的边缘即透明,这种方法最为方便有效! 喜欢全部用代码实现的话,完全可以,比较麻烦! 方便给段代码么。。 19楼链接里下载代码
[其他解释] 自己在顶
[其他解释] 我找了几个全市用的API实现的,晕,不用api不能实现么?
[其他解释] gdi
[其他解释] ding ...!!!!!
[其他解释] up
[其他解释] 路过学习
[其他解释] 推荐CodeProject上那个源码
[其他解释] 顶,关注[其他解释] 不会帮顶![其他解释] 友情帮顶[其他解释] 可以用CustomForm来实现窗体半透明,用CustomForm的好处就在于form窗体是透明的,其上的控件比如listbox、picturebox是实体的显示。刚好满足楼主的要求。 用的时候主要引用下CustomForm.Dll文件就可以定义CustomForm窗体了[其他解释]
引用: 推荐CodeProject上那个源码 那个是全局透明的. 上面的控件依然是和父容器的透明值一样..
[其他解释] 我也顶
[其他解释] http://blog.csdn.net/wo65432519/archive/2010/01/01/5118212.aspx
这个是WinCE的透明控件的做法,LZ可以参考下
[其他解释] 顶了~~~~~~~~~~~~
[其他解释] http://community.csdn.net/
这里有我上传的CustomForm.dll文件,你一用就明白了,希望对你有帮助。
[其他解释] 老贴又被翻出来了~
[其他解释] 帮 顶
[其他解释] 路过....
[其他解释] 帮顶!!!
这个真挺好
[其他解释] http://www.cnblogs.com/liutao409/archive/2010/11/01/1866104.html
你要的。。。
也是我要的。
[其他解释] 顶起来!
我也一直 在找 解决 这种部分半透明 部分不透 的窗体 效果 的方法 。
winform 不好实现这种效果啊
WPF 就简单了。
[其他解释] 引用: 老贴又被翻出来了~ 问题没有得到根本的解决,再说,你有啥资格说是老帖子?曾经发表过言论或者给过解决方案么。~
[其他解释] 该回复于2011-04-02 17:22:46被版主删除
[其他解释] 看来问题的确比较难哦,无人有正确答案
[其他解释] 解决了吗?木有解决加我QQ1845423835
[其他解释] 蛋痛,到现在都没解决问题啊、、、、
我也非常想知道。。。。。
用窗体叠加可以是可以但是感觉是在骗人一样。。。。