WPF で ActiveX コントロールをビジュアル ツリーの別の場所に移動することは可能ですか? 別のウィジェットの子になるように動的に移動したいコントロールがあります。
これが不可能な場合、コントロールのコピーを作成して別の場所に配置する方法はありますか? これに対する私の以前の試みはまったく機能しませんでした。
これは類推です。これは素晴らしいものではありませんが、うまくいけば、要点を理解できるようになります。
LEGO を使用してシーンを構築したと想像してください。また、画像が描かれた平らなアルミニウム片があり、これを LEGO レイヤーの 1 つの下に挿入して、シーンの一部にしたいと考えています。アルミにはペグや穴がないので、これはできません。一番下の層にはくっつかないし、上のレゴもくっつきません。
現実の世界では、接着剤などを使用して機能させることができるため、ここでは類推が崩れます。
WPF は、各コントロール (上記の LEGO) をレンダリングする単一の DirectX サーフェスをホストする単一のウィンドウ オブジェクトを提供します。ActiveX コントロール (または Winforms コントロール) には、それぞれ別個のシステム ウィンドウ オブジェクト (アルミニウム プレート) が必要です。DirectX サーフェスにレンダリングされた要素の間にシステム ウィンドウを配置することはできません。
この 2 つのテクノロジは混在しません (または、少なくとも混在しません)。この事実を受け入れて、その制限に合わせて調整するか、テクノロジーを変更する必要があります。Winforms (すべてのコントロールがシステム ウィンドウ) を使用してアプリケーションをビルドするか、使用しているこの ActiveX コントロールと同じ機能を提供する WPF コントロールを作成/検索します。