0

我尝试了 Visual C# Kicks代码的 alpha 混合形式。这有效(一旦我删除该TransparencyKey属性);也就是说,我可以使用 W3C 的PNG alpha 测试图像并查看下面的其他窗口,但会使表单上的所有控件不可见。据推测,它们根本没有被绘制,就像OnPaint被覆盖一样。我尝试调用超类的OnPaint

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    UpdateFormDisplay()

    MyBase.OnPaint(e)
End Sub

,但这并没有改变任何东西。MyBase.OnPaint (先打电话也没有任何区别。)

不幸的是,大多数关于 alpha 混合表单的文章都集中在没有任何控件的纯启动屏幕上——但我们需要一个面板,它首先显示登录字段,然后是进度条。

顺便说一句,控件不需要透明度。只有在外部边缘,PNG 的透明度才真正重要。因此,通过在这一切之上添加另一种形式(两者总是串联移动)来伪造这一点可能就足够了,但我更喜欢更平滑的解决方案。

4

1 回答 1

1

尝试在 InitializeComponents(); 之后将其放入您的表单 ctor;

base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);

于 2008-09-27T10:34:01.290 回答