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。
我创建了一个自定义 .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。