WPF控件在透明的Winform中无法显示

3
我创建了一个简单的WPF UserControl(任何控件都可以),并将其插入到Winform中(使用ElementHost)。 这个很好用。 WPF控件嵌入在WinForm中,当WinForm移动时,WPF控件就像WinForm控件一样移动。 当我通过将TranparencyKey设置为与BackColor相同的值来将WinForm更改为透明时,会出现一些问题: - WPF控件未显示 - 取而代之的是显示一个黑色矩形。 - 如果WinForm在屏幕上移动,则在其原始位置上出现WPF控件 - 就像它被WinForm覆盖一样。
更改ElementHost的属性(例如BackColorTransparent)没有改变行为。 将WinForm的BackColor和TransparencyKey都设置为Black可以解决黑色矩形的问题,但仍然存在问题:当WinForm移动时,WPF控件仍留在原始位置。
请注意,这些问题发生在Windows XP SP3下(这是我们的目标操作系统),但不会在Windows 2003下发生。 (我们没有在Vista和Windows 7上进行检查。)
有什么想法可以在具有WPF控件的透明Winform中获得正常行为吗?

你有在不同的XP电脑上检查过吗(使用不同的图形硬件)?这种情况通常是由于图形驱动程序错误引起的。 - Nir
我也遇到了这个问题,也很想知道解决方案。 - Aviad P.
我在两台不同硬件的XP电脑上进行了测试,并得到了相同的结果。我怀疑这与硬件无关,而是与WinForm和WPF互操作有关。 - Ury J.
我也有同样的问题。我需要使表单透明,但仍保持子控件不透明。 - Nam G VU
你想用这个表单做什么? - Rev
1个回答

0
你是否在 WPF 控件上设置了背景属性?默认情况下,它会从其父容器继承,如果没有设置,则会这样做。尝试将 UserControl 的背景属性设置为白色或灰色,你的问题应该就解决了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接