C# Win Xp,winform渐变背景上的透明标签不工作

C# Win Xp,winform渐变背景上的透明标签不工作,c#,winforms,transparency,C#,Winforms,Transparency,对于我的应用程序,我会制作类似“Toast”的提醒。Im在forms“Paint”事件上使用覆盖方法创建自定义渐变。表单上有一个图片框和3个标签,都有透明的背景。在XP上,这些控件的背景设置为窗体的原始背景色,并且不显示图像/文本 在windows 7上: 在Windows XP上: 我的绘画方法: private void AlertForm_Paint(object sender, PaintEventArgs e) { using (LinearGrad

对于我的应用程序,我会制作类似“Toast”的提醒。Im在forms“Paint”事件上使用覆盖方法创建自定义渐变。表单上有一个图片框和3个标签,都有透明的背景。在XP上,这些控件的背景设置为窗体的原始背景色,并且不显示图像/文本

在windows 7上:

在Windows XP上:

我的绘画方法:

    private void AlertForm_Paint(object sender, PaintEventArgs e)
    {
        using (LinearGradientBrush brush = new LinearGradientBrush(
            this.ClientRectangle,
            Color.Black,
            Color.DimGray,
            120F))
        {
            e.Graphics.FillRectangle(brush, this.ClientRectangle);
        }
    }
有没有人对解决windows XP上的问题有什么建议

更新:以下是我表单的源代码,减去设计代码:


已修复:我发现问题是由于表单的动画造成的。如果我只是显示表单,它会显示得很好,但只要我移动它,文本和图标就会消失。我决定注册“LocationChanged”事件,并手动调用this.Refresh()“在表单上,这解决了问题

如果删除
FillRectangle
调用,它在XP上是否显示ok?否。背景仍然是黑色的,这可能会有所帮助:它链接到的答案我不认为这是XP的问题,我以前使用过XP,它提供了许多第三方控件(例如来自支持winforms中许多瘦控件的DevExpress)OK。使用LC works发布的透明标签。。。但是前景文本仍然丢失