0

WPF 中是否可以将 ActiveX 控件移动到可视化树中的不同位置?我有一个控件,我想动态移动它成为另一个小部件的子控件。

如果这是不可能的,有没有办法制作控件的副本并将其放置在其他地方?我以前在这方面的尝试根本没有奏效。

4

1 回答 1

1

这是一个类比,它不是一个很好的类比,但希望它能够推动这一点:

想象一下,您使用乐高积木搭建了一个场景。您还有一块带有图像的扁平铝材,您想将其插入其中一个 LEGO 层下,使其成为场景的一部分。你不能这样做,因为铝上没有钉子和孔。它不会粘在底层,顶部的 LEGO 也不会粘在上面。

类比在这里不成立,因为在现实世界中,您可以使用胶水或其他东西使其起作用。

WPF 提供了一个单一的窗口对象,该对象承载一个 DirectX 表面,在该表面上呈现其每个控件(我们上面的 LEGO)。ActiveX 控件(或 Winforms 控件)每个都需要一个单独的系统窗口对象(铝板)。无法在 DirectX 表面上呈现的元素之间放置系统窗口。

这两种技术不混合(或至少不混合)。你要么必须忍受这个事实,并在这个限制下安排事情,要么你需要改变技术。使用 Winforms 构建您的应用程序(其中每个控件都是一个系统窗口),或者创建/查找一个 WPF 控件,该控件提供与您正在使用的此 ActiveX 控件相同的功能。

于 2012-07-31T17:08:50.310 回答