winform最小化到托盘,恢复后重绘界面

reone 2011-04-11 11:17:23
winform程序需要渐变色,最小化到托盘,鼠标点击恢复后需要重绘窗口实现渐变,这时候就出问题了,程序的框架是framework2.0,绘图代码为
Graphics g = e.Graphics;
LinearGradientBrush myBrush = new LinearGradientBrush( sc.ClientRectangle, startColor, endColor, LinearGradientMode.Vertical );
g.FillRectangle( myBrush, sc.ClientRectangle );


方法需要提供一个Rectangle矩形作为绘图目标,但是最小化恢复时需要绘制的矩形大小已经为0了,这时候有什么办法解决?
...全文
324 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
reone 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 libinguest 的回复:]
在其距形所在控件的改变大小事件下写,如果距形的高或是宽为0就return

否则重绘。
[/Quote]
一开始就是这么想的,后来一想这不是跳过重绘界面就不是渐变色了吗。。。。我靠 我怎么这么晕啊。。
结贴了。。。
风之影子 2011-04-11
  • 打赏
  • 举报
回复
在其距形所在控件的改变大小事件下写,如果距形的高或是宽为0就return

否则重绘。
reone 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangyong0921 的回复:]
你是在OnPaint函数里面绘制的么?

如果是的话,一般没有这个问题的
[/Quote]

是在paint里。。。不到托盘时候是没问题的,从托盘出来后会有这个问题
Just4life 2011-04-11
  • 打赏
  • 举报
回复
你是在OnPaint函数里面绘制的么?

如果是的话,一般没有这个问题的
白鸽 2011-04-11
  • 打赏
  • 举报
回复
应该需要双缓冲技术,因为涉及到重绘要避免界面打开时闪烁得情况所以必须要用到双缓冲的技术!!网上百度一下吧,很多!!就不给你代码了
reone 2011-04-11
  • 打赏
  • 举报
回复
双缓冲是啥 感觉不需要这么复杂吧
白鸽 2011-04-11
  • 打赏
  • 举报
回复
怎么感觉你这个东西应该用双缓冲来实现呢!!

111,125

社区成员

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

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

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