首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >透明的自定义图形用户控件:在运行时变黑

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

Stack Overflow用户
提问于 2018-11-20 16:46:35
回答 1查看 94关注 0票数 2

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

我已经搜索过堆栈溢出解决方案,但大多数文章都提到了WPF或控制器。:(

我尝试过的事物:

我尝试过使用透明面板用户控件来容纳图形化用户控件。这没什么改变。我将图形化用户控件设置为使用透明面板作为父控件,nothing。

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

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

代码语言:javascript
复制
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams parameters = base.CreateParams;
            parameters.ExStyle |= WS_EX_TRANSPARENT;
            return parameters;
        }
    }

    internal const int WS_EX_TRANSPARENT = 0x00000020;

我还试着补充:

代码语言:javascript
复制
        this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
        this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-20 19:23:12

我也遇到了类似的问题。我搜索了谷歌,找到了我的答案。我不知道您的自定义控件的代码,但是看看您的OnPaint中这样的一行:

代码语言:javascript
复制
e.Graphics.Clear(Color.Transparent);

与“透明”颜色一起使用的“清除”功能不会使您的自定义控件透明。它本质上是在整个控件上涂上透明的颜色。这可能会导致一些相当古怪的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53397705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档