C# 透明自定义图形用户控件:在运行时变黑

C# 透明自定义图形用户控件:在运行时变黑,c#,winforms,user-controls,transparency,graphing,C#,Winforms,User Controls,Transparency,Graphing,我有一个自定义的graphing usercontrol,它支持透明背景色。在设计过程中,usercontrol正确显示。但是,在运行时,背景色变为黑色 我在stackoverflow中搜索了一个解决方案,但大多数文章都提到WPF或控制器:( 我尝试过的事情: 我已尝试使用transparentpanel用户控件来容纳graphing usercontrol。这没有改变任何内容。我将graphing usercontrol设置为使用transparentpanel作为父级,没有改变任何内容 有

我有一个自定义的graphing usercontrol,它支持透明背景色。在设计过程中,usercontrol正确显示。但是,在运行时,背景色变为黑色

我在stackoverflow中搜索了一个解决方案,但大多数文章都提到WPF或控制器:(

我尝试过的事情:

我已尝试使用transparentpanel用户控件来容纳graphing usercontrol。这没有改变任何内容。我将graphing usercontrol设置为使用transparentpanel作为父级,没有改变任何内容

有人对如何防止这种情况发生有任何意见吗?谢谢

更新1:如果我只是将graphing usercontrol添加到表单并运行应用程序,透明度仍然有效。当它开始绘图时,这似乎是一个问题。我尝试了以下解决方案

    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams parameters = base.CreateParams;
            parameters.ExStyle |= WS_EX_TRANSPARENT;
            return parameters;
        }
    }

    internal const int WS_EX_TRANSPARENT = 0x00000020;
我还尝试添加:

        this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
        this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false);

我遇到了与此类似的问题。我搜索了Google并找到了答案。我不知道自定义控件的代码,但请在OnPaint中查找类似的行:

e.Graphics.Clear(Color.Transparent);

与“透明”一起使用的功能“清除”颜色不会使自定义控件透明。它本质上是在整个控件上绘制透明的颜色。这可能会导致一些非常时髦的结果。

这不是同一个问题吗?因为我从未遇到过要形成的circularprogressbars的透明度问题。就在它们重叠的时候。这是表单上的直接结果。W嗯,有什么不同?这与你的透明用户控制有关吗?这是什么意思?这是
CustomControl
还是
usercontrol
(不同的东西)?您是否在某个时候将
背景色设置为
颜色。透明
?发布与绘图相关的代码。
我将graphing usercontrol设置为将transparentpanel用作父级
我猜这是您的问题。WinForms从来没有真正的透明度,只是复制父级容器的背景。这是问题到底是什么。哇。非常感谢你的帮助。问题解决了。