【发布时间】:2013-01-12 09:09:46
【问题描述】:
我用渐变绘制了我的 winform。我在其中一个使用 AutoScroll = true 的面板。这样,我可以显示所有信息,而不会占用太多空间。
现在,我希望该面板是透明的。我使用透明作为背景颜色并且工作正常。问题是当我滚动时。透明度搞砸了。有没有办法解决这个问题?
在知道最终高度后,我还尝试使用与我的表单相同的渐变来绘制面板。但我也有同样的问题。
这里有一些图片:(不要看文本框或那些透明的小面板。那是白色的)。
滚动前(右)
滚动后(背景色问题)
滚动后的另一个:
【问题讨论】:
-
你把可怜的winforms推得太远了。它不适用于此类事情。最好使用 WPF。
-
嗯,这不是一个选项。我正在将一些 WPF 窗口与一些 Winforms 混合在一起,但我对 WPF 了解不多,此外,我正在展示的这个表单已经在 Winforms 中完成。如果无法做到这种背景透明度,我将只选择纯色背景..
-
当然可以。任何事情都可以。这不是一件容易的事。
-
为面板的 Scroll 事件添加事件处理程序并调用面板的 Invalidate() 方法。这将修复背景,但滚动时看起来不会很好。您会看到 pogo 效果。 “拖动时显示窗口内容”Windows 选项的一个不可避免的副作用,您无法合理地关闭它。
-
谢谢汉斯·帕桑特!如果要选择它,请将其写在答案中..
标签: c# winforms panel gradient transparent