Прозрачный пользовательский график Пользовательский контроль: становится черным во время выполнения - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть пользовательский графический контроль, который поддерживает прозрачный фоновый цвет.Во время проектирования пользовательский контроль показывает правильно.Однако во время выполнения задний цвет становится черным.

Chart on Runtime

Я искал решение для работы с stackoverflow, но большинство статей касаются WPF или контроллеров.: (

То, что я пробовал:

Я пытался использовать прозрачный пользовательский контроль панели для размещения графического пользовательского контроля. Это ничего не изменило. Я установил графический пользовательский контроль для использованияПрозрачная панель как родитель, ничего.

У кого-нибудь есть какие-либо сведения о том, как этого избежать? Спасибо.

Обновление 1: Если я просто добавлю графики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);

1 Ответ

0 голосов
/ 20 ноября 2018

У меня была похожая проблема с этим.Я искал в Google и нашел свой ответ.Я не знаю ваш код для вашего пользовательского элемента управления, но посмотрите на строку, подобную этой, в вашем OnPaint:

e.Graphics.Clear(Color.Transparent);

Функция «Очистить», используемая с цветом «Прозрачный», не собираетсясделайте свой пользовательский элемент управления прозрачным.По сути, он закрашивает цвет прозрачным на весь ваш контроль.Это может привести к довольно забавным результатам.

...