У меня есть настраиваемый графический пользовательский элемент управления, который поддерживает прозрачный фон. Во время проектирования пользовательский элемент управления отображается правильно. Однако во время выполнения задний цвет становится черным.
Я искал решение stackoverflow, но большинство статей относятся к 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);
CustomControl
илиUserControl
(разные вещи)? Вы когда-нибудь устанавливаетеBackColor
наColor.Transparent
? Разместите код, связанный с рисунком. - person Jimi   schedule 20.11.2018I set the graphing usercontrol to use the transparentpanel as the parent
Полагаю, это ваша проблема. WinForms никогда не имеет истинной прозрачности, просто копируя фон родительского контейнера. - person LarsTech   schedule 20.11.2018