【问题标题】:c# Winform Transparent panel issue with form with gradientc# Winform 透明面板问题,带有渐变的表单
【发布时间】:2013-01-12 09:09:46
【问题描述】:

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

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

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

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

滚动前(右)

滚动后(背景色问题)

滚动后的另一个:

【问题讨论】:

  • 你把可怜的winforms推得太远了。它不适用于此类事情。最好使用 WPF。
  • 嗯,这不是一个选项。我正在将一些 WPF 窗口与一些 Winforms 混合在一起,但我对 WPF 了解不多,此外,我正在展示的这个表单已经在 Winforms 中完成。如果无法做到这种背景透明度,我将只选择纯色背景..
  • 当然可以。任何事情都可以。这不是一件容易的事。
  • 为面板的 Scroll 事件添加事件处理程序并调用面板的 Invalidate() 方法。这将修复背景,但滚动时看起来不会很好。您会看到 pogo 效果。 “拖动时显示窗口内容”Windows 选项的一个不可避免的副作用,您无法合理地关闭它。
  • 谢谢汉斯·帕桑特!如果要选择它,请将其写在答案中..

标签: c# winforms panel gradient transparent


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我将引用答案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-08
      • 2010-12-09
      • 2011-05-25
      • 1970-01-01
      • 2014-12-08
      • 2011-08-06
      • 1970-01-01
      • 2011-03-25
      相关资源
      最近更新 更多