C#NET – 在不透明度级别设置的窗体上绘制不透明画笔
我想要实现的是覆盖屏幕的半透明背景.
然后能够在它上面绘制不透明的画笔. 我试过的是一个具有屏幕大小的表单,然后设置它的颜色并设置this.opacity = 0.5.但是这会影响表单中的所有画笔. 我也尝试将背景颜色设置为Color.Transparent,然后绘制一个覆盖屏幕的额外画笔,不透明度为0.5,然后绘制不透明画笔……但背景也变得不透明. 我知道我可以通过增加一个表格来达到这个目的. 有没有更好的办法? 更新1: 当前状态: 表单1和表单2表示为indended,但Form3拒绝使用透明表单. this.BackColor = Color.Lime; this.TransparencyKey = Color.Lime; 然后性能下降,程序严重滞后(虽然它确实变得透明). 请注意,表单覆盖屏幕,背景通常是桌面.也许这就是为什么它不起作用? 解决方法
您可以覆盖表单的OnPaintBackground,而无需调用它的基础.
这将使您能够为背景指定所需的颜色. 试试这个: protected override void OnPaintBackground(PaintEventArgs e) { using (var brush = new SolidBrush(Color.FromAgrb(50,0)) { e.Graphics.FillRectangle(brush,e.ClipRectangle); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |