我有一个自定义图形化用户控件,它支持透明背景色。在设计过程中,用户控件将正确显示。但是,在运行时,背景色会变成黑色。

我已经搜索过堆栈溢出解决方案,但大多数文章都提到了WPF或控制器。:(
我尝试过的事物:
我尝试过使用透明面板用户控件来容纳图形化用户控件。这没什么改变。我将图形化用户控件设置为使用透明面板作为父控件,nothing。
有没有人对如何防止这种情况的发生有任何意见?谢谢。
更新1: --如果我只是将图形化用户控件添加到表单并运行应用程序,透明度仍然有效。这似乎是一个问题,当它开始绘图。我尝试了以下解决方案。
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);发布于 2018-11-20 19:23:12
我也遇到了类似的问题。我搜索了谷歌,找到了我的答案。我不知道您的自定义控件的代码,但是看看您的OnPaint中这样的一行:
e.Graphics.Clear(Color.Transparent);与“透明”颜色一起使用的“清除”功能不会使您的自定义控件透明。它本质上是在整个控件上涂上透明的颜色。这可能会导致一些相当古怪的结果。
https://stackoverflow.com/questions/53397705
复制相似问题