C#TransparencyKey透明问题

我的窗体设置TransparencyKey为White窗体背景为白色然后在窗体上用Graphics画了一张非白色的图再用Graphics画了一张白图这时画面上应该白图把前... 我的窗体设置TransparencyKey为White 窗体背景为白色
然后在窗体上用Graphics 画了一张非白色的图 再用Graphics 画了一张白图
这时画面上应该白图把前一张图覆盖且白色为透明 应该什么都不显示
但我在其他机器上用双显示器的时候 白色不透明 就显示一张白图
我把画面ALT + TAB切出去之后白色就透明了有人知道这是什么问题 该怎么解决
或者怎么达成这个ALT+TAB的效果也可以
展开
 我来答
百度网友cfe4d0f
推荐于2016-07-14 · TA获得超过1502个赞
知道小有建树答主
回答量:937
采纳率:100%
帮助的人:862万
展开全部
“在窗体上用Graphics直接绘图” 这个件事本身就是错误的
GDI+的绘图原理:需要时刷新
当你alt+tab切换后 窗体会进行重绘 重新执行OnPaint函数
你刚才绘制的内容全都不见了 窗体才会重新回归透明

正确的绘制方式是把绘图代码写在OnPaint中
或者绘制在一张Bitmap上 然后对窗体setBackground使他刷新显示
直接在代码中使用gdi+绘图是不可取的-w-
追问
实际代码是在Bitmap上画的  我只是简化的说
我ALT+TAB之后其他图片都还在 没有变化
只有这张白图变为应有的透明
ALT+TAB并不会百分百的变成透明 只是偶尔会变
但只要进断点 就百分百会变透明
我现在就想让他正常的透明
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ACAO_BD
2014-07-28 · 超过11用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:27.7万
展开全部
this.Refresh
更多追问追答
追问
this.Refresh会让所有图片消失
可以局部消失吗 就是只让这一区域变透明 背景就是透明的
追答
在OnPaint上绘图就不会消失
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式