C#winforms透明表单覆盖问题

Jef*_*ick 7 c# transparent winforms

我的主要表单上有一个水平拆分容器.顶部包含此处的对象列表视图控件.

我使用从先前的C#透明覆盖表单代码的答案.

我的问题似乎与对象列表视图有关.使用上面答案中的代码,透明表单完美地覆盖了所有控件,但是当它到达对象列表视图时,它似乎在这个特定控件上绘制得更暗.

Splitcontainer重叠

如果我关闭透明覆盖层并将空白面板放在前面,当我打开透明覆盖层时,它仍会显示这个较暗的部分,就像对象列表视图控件仍然可见一样.

空白面板重叠

我首先想知道为什么会这样.但我也想知道如何解决这个问题,以便叠加是一致的.

  • 如果您想测试这个,我创建了一个简单的项目来演示这里的问题

要复制发生的事情......

  1. 将splitcontainer向下拖动一点,然后单击Overlay按钮.

  2. 单击白色面板关闭叠加层.单击"空白面板"按钮,然后再次单击"叠加"按钮.

请注意,在Plexiglass类中,它仅将面板作为参数用于此演示,在我的实际项目中,它将主窗体作为参数.

编辑

我将颜色从深灰色变为白色,效果很好.我不知道为什么暗灰色导致了这个问题,但是我很满意它看起来像白色的样子,所以我会坚持下去.

Jef*_*ick 0

由于某种原因,透明表单的 Color.DarkGray BackColor 属性导致了该问题。将 BackColor 更改为 Color.White 修复了此问题。

感谢帕特里斯·加希德对我的帮助。

  • 不客气,我的部分并不那么难;)很高兴你终于解决了它。 (2认同)