winform如何做出渐变透明效果

loyal_to 2017-12-15 10:43:12
...全文
646 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
loyal_to 2017-12-19
  • 打赏
  • 举报
回复
我用渐变的画笔实现了,谢谢各位,结贴给分
以有涯求无涯 2017-12-19
  • 打赏
  • 举报
回复
需要一张渐变效果的PNG图片蒙到顶层,可解决你的需求
xuzuning 2017-12-18
  • 打赏
  • 举报
回复
定义成画笔去画线,可能更灵活些
                var p = new Pen(Color.FromArgb(a, Color.White), 3);
g.DrawLine(p, 20, top, 160, top);
xuzuning 2017-12-18
  • 打赏
  • 举报
回复
        protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
//g.Clear(Color.White);
g.DrawImage(new Bitmap("1.gif"), new Point(20, 30));
g.DrawString("渐变", new Font("黑体", 28), Brushes.Black, new Point(80, 40));
var top = 40;
for (var a = 0; a < 255; a += 16)
{
var p = new SolidBrush(Color.FromArgb(a, Color.White));
g.FillRectangle(p, 20, top, 140, 3);
top += 3;
}
}
早起晚睡 2017-12-18
  • 打赏
  • 举报
回复
不是动态的就直接p图吧
这不是鸭头 2017-12-18
  • 打赏
  • 举报
回复
好牛好牛。学习了
assky124 2017-12-18
  • 打赏
  • 举报
回复
找一个半透的图片贴上去,最简单了
threenewbee 2017-12-16
  • 打赏
  • 举报
回复
用ps做一个alpha通道渐变的png图,下面是100%不透明,上面100%透明,然后贴上去。
巴士上的邂逅 2017-12-16
  • 打赏
  • 举报
回复
我记得有渐变画笔
白三儿 2017-12-15
  • 打赏
  • 举报
回复
只做过窗体的感觉道理应该差不多
正怒月神 2017-12-15
  • 打赏
  • 举报
回复
美工这一块,我不行。 给不了意见
loyal_to 2017-12-15
  • 打赏
  • 举报
回复

像浏览器标题的渐隐效果
loyal_to 2017-12-15
  • 打赏
  • 举报
回复
不是那个渐变,是固定的,下面是内容,内容上半部分半透明,下半部分被白色遮挡
白三儿 2017-12-15
  • 打赏
  • 举报
回复
窗体属性的opacity透明设成0然后在timer设置他的值逐渐增大

this.Opacity += 0.1;

渐变效果调用系统的api里面第一个参数绑定,第二个动画时间第三个动画效果

[DllImportAttribute("user32.dll")]
private static extern bool AnimateWindow(IntPtr hwnd, int dtTime, int dwFlags);

再在mainload里使用函数实现效果,这个效果数值自己查一下就知道了

const int AW_SLIDE = 0X00040000;
const int AW_VER_NEGATIVE = 0X00000002;
AnimateWindow(this.Handle, 3000, AW_SLIDE + AW_VER_NEGATIVE);

loyal_to 2017-12-15
  • 打赏
  • 举报
回复
如图片中所示
Jason_Mao1 2017-12-15
  • 打赏
  • 举报
回复
大概有这么几种方案,你采纳一下 。1 CS 结构中有自带透明的效果 2 用第三方皮肤 3 用GDI 去绘制。希望能帮助到你。
raynors 2017-12-15
  • 打赏
  • 举报
回复
改进一下可以做这样.
raynors 2017-12-15
  • 打赏
  • 举报
回复
应该就是这样了.




private void drawPIC (Graphics gc)
{
int Cx = 150;
int Cy = 150;

Bitmap bitmap = new Bitmap(global::WindowsFormsApplication2.Properties.Resources.右1);

gc.DrawImage(bitmap, new Point(Cx-50, Cy));//原图

double alphaReduce = 2 / (double)bitmap.Width; //渐变量
double alphaPercent = 1;

for (int px= bitmap.Width /2; px<bitmap.Width;px++) //只渐变x轴,从图中心开始,末尾为0
{
for (int py = 0; py < bitmap.Height; py++)
{
Color sc = bitmap.GetPixel(px, py);
byte r=(byte)(sc.R) ;
byte g = (byte)(sc.G);
byte b = (byte)(sc.B);
if (sc.A == 0) continue;
byte a = (byte)(sc.A * alphaPercent);
bitmap.SetPixel(px, py, Color.FromArgb(a, r, g, b));
}
alphaPercent -= alphaReduce;//渐变
}

gc.DrawImage(bitmap, new Point(Cx+50, Cy));//渐变图
}
cyg17173 2017-12-15
  • 打赏
  • 举报
回复
找个美工,PS 搞下。
  • 打赏
  • 举报
回复
有个闭源免费控件 CSkin,你百度一下就找到了,这些东西他做的多,其实也就都是渐变隐藏等效果渲染。
高仿QQ2013局域通讯版源码 实现功能: 1.高仿界面100%,让你分辨不清楚那个才是真的QQ。 2.四边阴影,毛边效果。 3.密码键盘输入,防护更贴心。 4.圆角窗体,润滑如圆。 5.登录主界面后,有登陆提示弹窗。 6.皮肤随心变:拖动任意一张图片至主界面,就可以改变皮肤。 7.皮肤色调获取:改变皮肤的同时,将计算图片色调,再将其运用到窗体背景色。 8.皮肤尾部渐变:如真QQ一般,上下左右方均可实现,渐变皮肤。 9.皮肤拖拉方向:可以选择皮肤在拉伸的时候,粘着哪一边拖拉。 10.GDI+界面重绘,处理消息机制,移动和拉伸是否启用只需要设置一个属性的事就可以解决。 11.界面渐变闪现和闪退:不再像平凡的突然出现,采用API渐变机制,渐渐出现和消失。 12.完美好友列表,可添加上千好友,不卡不掉线,还可以拖动好友到其他分组。 13.好友悬浮至头像可以查看详细资料卡。 14.窗口可调渐变透明度:让窗体看起来更像是Vista玻璃窗体风格。 15.聊天窗口可发送图片,文件,表情,还有震动。 16.聊天窗口输入框和显示框都采用半透明技术,和真的QQ一样漂亮,有点闪烁,但是不影响整体使用。 17.更是有和QQ如出一辙的QQ截图。QQ截图采用网上好友开发的截图,仿真度也达到100%。 18.聊天窗口,可以调字体颜色和字体样式等多项功能。 20.界面库含有多项功能与控件需要你们自己去挖掘,加油吧。 21...更多功能,请自行发现。 注意: 开发环境为Visual Studio 2010 非原著

110,536

社区成员

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

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

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