C# PictureBox 透明度与 c++ lib 绘制到 UserControl

C# PictureBox transparency with c++ lib drawing into UserControl

我创建了一个自定义 .NET MyUserControl,它使用第 3 方 c++ 库来使用 MyUserControl.Control.Handle.

MyUserControl 上绘制

当我将带有 BackgroundColor = Transparent 的子控件(即 PictureBox)放置在 MyUserControl 上时,图片框的透明度不起作用 - 图片框显示 MyUserControl 的原始背景色-> 就好像 lib 的实际绘图被忽略了一样。

有什么方法可以设置图片框使其在 MyUserControl 上仍然透明?

此解决方案有效:

Overlay WinForms controls on DirectX content

尽管有一个警告。 PictureBox实际上是用来绘制鼠标的橡皮筋选择矩形。清除顶部 PictureBox,因为它是透明的,需要使位于其下方的底层 MyUserControl 无效。仅使 PictureBox 无效就足以在 'PictureBox'(当前橡皮筋)中显示新的 canvas 图,但这并不能清除旧的 canvas 图(以前的橡皮筋) ).

这引入了一个小的闪烁。如果有人对此有想法,请post。