2010-05-03 2 views
1

Lorsque je souhaite afficher un formulaire (windows) utilisateur qui réside dans une DLL (dans ce cas Form1), j'utilise le code suivant d'un autre exécutable;Appel de la bibliothèque de contrôle WPF

Assembly a = Assembly.Load(System.IO.File.ReadAllBytes("mydll.dll")); 
Form MyDLLFormInstance = (Form)a.CreateInstance("myNamespace.Form1"); 
MyDLLFormInstance.Show(); 

Maintenant, j'ai créé une autre DLL en utilisant WPF. Lorsque j'utilise le code ci-dessus, j'ai l'erreur suivante:

Unable to cast object of type 'myNamespace.Window1' to type 'System.Windows.Forms.Form'. 

Alors, comment puis-je jeter System.Windows.Window à System.Windows.Forms.Form? Ou, comment puis-je montrer la fenêtre qui réside dans une DLL créée par WPF à partir de l'application C# forms?

Répondre

1

Vous ne pouvez pas lancer directement un System.Windows.Window- System.Windows.Forms.Form.

Toutefois, il est possible de créer un formulaire Windows et de l'utiliser pour héberger un contrôle WPF en tant que contrôle enfant. Windows Forms fournit le contrôle ElementHost pour cela.

+0

Merci. Je cherchais cette réponse. –

Questions connexes