2014-07-11 3 views
2

Dans mon application wpf j'essaie d'utiliser Windows formulaire de contrôle .... mais j'obtiens une erreur i.e Erreur Le type 'WindowsFormsHost' n'a pas été trouvé. Vérifiez qu'il ne manque pas de référence d'assembly et que tous les assemblys référencés ont été générés. peut me aider pour le faire ... ce qui suit est mon code'WindowsFormsHost' n'a pas été trouvé

 c#:code 

    public Window2() 
    { 
     InitializeComponent(); 
     System.Windows.Forms.PictureBox PictureBox1 = new System.Windows.Forms.PictureBox(); 
     windowsFormsHost1.Child = PictureBox1; 
     PictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(PictureBox1_Paint); 


    } 
    xaml:code 


     <WindowsFormsHost Height="175" HorizontalAlignment="Left" Margin="10,10,0,0" Name="windowsFormsHost1" VerticalAlignment="Top" Width="255" /> 
+0

Vous êtes sûr d'avoir inclus ce 'xmlns =" ​​http://schemas.microsoft.com/winfx/2006/xaml/presentation "' et 'xmlns: x =" http://schemas.microsoft.com/ winfx/2006/xaml "' –

+0

ya-t-il j'ai ajouté ces références ... – user3413736

+0

avez-vous utiliser 'WindowsFormsIntegration' ref? – Rang

Répondre

10

Normalement, quand on voit une erreur qui dit:

Le type SomeClass n'a pas été trouvé. Vérifiez qu'il ne manque pas de référence d'assembly et que tous les assemblys référencés ont été construits

Il peut y avoir quelques problèmes. Soit cela signifie que nous n'avons pas ajouté une référence de la DLL pertinente à notre projet, ou nous n'avons pas importé l'espace de noms correctement.

Pour trouver la DLL à laquelle nous devons ajouter une référence, nous allons normalement à MSDN, en recherchant avec les termes de recherche 'SomeClass class' ... dans votre cas 'WindowsFormsHost class'. Faire cela pour la classe WindowsFormsHost, nous voyons ceci:

enter image description here

Notez la ligne qui dit:

Assemblée: WindowsFormsIntegration (en WindowsFormsIntegration.dll)

En regardant dans le Ajouter une référence dialogue dans Visual Studio, nous pouvons voir une entrée dll pour WindowsFormsIntegration:

enter image description here

Donc, c'est ainsi que nous découvrons quelle DLL importer. Maintenant, nous avons juste besoin de faire en sorte que nous importons l'espace de noms correctement, que ce soit en C#:

using System.Windows.Forms.Integration; 

En XAML, vous n'avez pas besoin d'ajouter un espace de noms XML pour la dll WindowsFormsIntegration avant d'utiliser le contrôle WindowsFormsHost.

<WindowsFormsHost> 
    <!-- Some WinForms Control --> 
</WindowsFormsHost> 

Voir la page WindowsFormsHost Class sur MSDN pour plus d'informations.

Questions connexes