2009-07-30 18 views
3

Was sind meine Optionen für die Interaktion mit einer COM-Steuerung von Silverlight?Silverlight und COM Interop

In meinem speziellen Projekt habe ich ein altes ActiveX-Authentifizierungs-Steuerelement, das ich in meiner Silverlight-Anwendung nutzen möchte. Ohne zu viele langweilige Details nimmt das Steuerelement einige Parameter an, fordert den Benutzer zur Eingabe von Anmeldeinformationen oder Tokens auf und löst Ereignisse aus. Ich muss die Parameter von meiner Steuerung einstellen und irgendwie die Daten der Ereignisse zu meiner Kontrolle bekommen.

Darüber hinaus möchte ich die Benutzeroberfläche so homogen wie möglich erscheinen.

Was sind die besten Möglichkeiten, dies zu tun?

Antwort

3

IIRC, Silverlight bietet keine Möglichkeit, direkt mit COM zu arbeiten - es gibt weder P/Invoke noch COM Interop - und die Sandbox würde es Ihnen auf keinen Fall erlauben. Allerdings können Sie das ActiveX-Steuerelement im Browser neben Ihrer Silverlight-Anwendung hosten (was offensichtlich nur auf IE beschränkt ist) und dann einen JavaScript-Kleber in den Browser schreiben, um damit zu arbeiten - JavaScript kann sowohl mit ActiveX als auch mit Silverlight interagieren.

Ich glaube nicht, dass Sie ein ActiveX-Steuerelement in Ihrer Silverlight-Anwendung vernünftigerweise hosten können. Das Nächste, was Sie tun können, ist wie oben beschrieben, aber positionieren Sie ActiveX-Steuerelement (im Browser-DOM) oben, wenn Silverlight Canvas an der richtigen Stelle, so dass es wie eine einzelne Benutzeroberfläche aussieht. Nicht sicher, ob dies jedoch keine Rendering-Artefakte erzeugt.

+0

Danke Pavel. Das war, was ich erwartet hatte, ich hatte nur gehofft, vielleicht gibt es andere Ansätze, die ich vielleicht übersehen habe. Ich bin nicht besorgt, dass es nur IE ist, denn das ist die Freude an der Arbeit mit ActiveX überhaupt. –

+8

Außer, dass es für das neueste Silverlight nicht ganz stimmt; Silverlight 4 hat jetzt COM-Interop. –

+0

Ein Silverlight 5 hat P/Invoke auch - diese Antwort ist uralt. – John

Verwandte Themen