我创建了一个简单的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中获得正常行为吗?
更改ElementHost的属性(例如BackColorTransparent)没有改变行为。 将WinForm的BackColor和TransparencyKey都设置为Black可以解决黑色矩形的问题,但仍然存在问题:当WinForm移动时,WPF控件仍留在原始位置。
请注意,这些问题发生在Windows XP SP3下(这是我们的目标操作系统),但不会在Windows 2003下发生。 (我们没有在Vista和Windows 7上进行检查。)
有什么想法可以在具有WPF控件的透明Winform中获得正常行为吗?