透明的自定义图形用户控件:在运行时变黑
Transparent Custom Graphing User Control: Turning Black on Runtime
我有一个自定义图形用户控件,它支持透明背景色。在设计过程中,用户控件正确显示。但是,在 运行 时间,背景颜色变为黑色。
我在 Whosebug 上搜索了解决方案,但大多数文章都提到了 WPF 或控制器。 :(
我尝试过的东西:
我试过使用透明面板用户控件来放置图形用户控件。这没有改变。我将图形用户控件设置为使用透明面板作为父级,什么都没有。
有人对如何防止这种情况发生有任何意见吗?谢谢。
更新 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);
我遇到了类似的问题。我搜索了 Google 并找到了我的答案。我不知道您的自定义控件的代码,但请在您的 OnPaint 中查找像这样的一行:
e.Graphics.Clear(Color.Transparent);
与 "Transparent" 颜色一起使用的函数 "Clear" 不会使您的自定义控件透明。它基本上在整个控件上绘制透明的颜色。这可能会导致一些非常奇怪的结果。
我有一个自定义图形用户控件,它支持透明背景色。在设计过程中,用户控件正确显示。但是,在 运行 时间,背景颜色变为黑色。
我在 Whosebug 上搜索了解决方案,但大多数文章都提到了 WPF 或控制器。 :(
我尝试过的东西:
我试过使用透明面板用户控件来放置图形用户控件。这没有改变。我将图形用户控件设置为使用透明面板作为父级,什么都没有。
有人对如何防止这种情况发生有任何意见吗?谢谢。
更新 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);
我遇到了类似的问题。我搜索了 Google 并找到了我的答案。我不知道您的自定义控件的代码,但请在您的 OnPaint 中查找像这样的一行:
e.Graphics.Clear(Color.Transparent);
与 "Transparent" 颜色一起使用的函数 "Clear" 不会使您的自定义控件透明。它基本上在整个控件上绘制透明的颜色。这可能会导致一些非常奇怪的结果。