0

我用渐变绘制了我的winforms。我正在其中一个使用 AutoScroll = true 的面板。这样,我可以在不占用太多空间的情况下显示所有信息。

现在,我希望该面板是透明的。我使用透明作为背景颜色并且工作正常。问题是当我滚动时。透明度搞砸了。有没有办法解决这个问题?

在知道最终高度后,我还尝试使用与我的表单相同的渐变来绘制面板。但我有同样的问题。

这是一些图片:(不要看文本框或那些透明的小面板。那将是白色的)。

滚动前(右) 在此处输入图像描述

滚动后(背景色问题) 在此处输入图像描述

滚动后的另一个:

在此处输入图像描述

4

2 回答 2

1

我遇到过同样的问题。调用 panel.Refresh() 看起来比 Invalidate() 更好、更流畅。

于 2015-09-02T08:56:43.017 回答
0

我将引用答案:

为面板的 Scroll 事件添加事件处理程序并调用面板的 Invalidate() 方法。这将修复背景,但在您滚动时看起来不会很好。您会看到 pogo 效果。“拖动时显示窗口内容”Windows 选项的一个不可避免的副作用,您无法合理地关闭它。——汉斯·帕桑特

于 2013-02-11T06:56:38.703 回答