Utiliser des control creer sous winforms en WPF [Résolu]

cs_Mimo11 12 Messages postés vendredi 10 octobre 2008Date d'inscription 25 juin 2010 Dernière intervention - 9 déc. 2009 à 13:51 - Dernière réponse : sofienjustdoit 6 Messages postés jeudi 12 avril 2012Date d'inscription 24 mai 2012 Dernière intervention
- 4 mai 2012 à 18:43
Bonjour a tous
j'ai suis entrein de réaliser une application avec WPF et j'aimerai utiliser des control que j'ai déja creer avec winforms, y'a t'il un moyen de les utiliser sans convertir le code car lorseque je les utilises directement le code genere pas mal d'erreurs
Merci
Afficher la suite 

16 réponses

Répondre au sujet
Philenain1 44 Messages postés jeudi 8 avril 2004Date d'inscription 29 mars 2010 Dernière intervention - 18 déc. 2009 à 13:04
+1
Utile
Je me suis fait un petit exemple vite fait et ça passe chez moi :
J'ai un usercontrol Winform qui s'appelle UserControl1

pour le faire apparaitre dans al page il suffit que je fasse :

J'ajoutes un Using :

using System.Windows.Forms.Integration;


Je déclare mon contrôle dans la classe de ma Window :

UserControl1 ctrl = new UserControl1();


Dans le constructeur de ma form après l'InitializeComponent() :

WindowsFormsHost host = new WindowsFormsHost();
host.Child = ctrl;
gridTest.Children.Add(host);


Là le contrôle apparait bien, j'ai accès aux propriétés évènements et méthode de mon contrôle partout dans ma Window.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Philenain1
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 9 déc. 2009 à 14:02
0
Utile
Salut

As-tu utilisé le composant WindowsFormHost ?

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
Commenter la réponse de krimog
cs_Mimo11 12 Messages postés vendredi 10 octobre 2008Date d'inscription 25 juin 2010 Dernière intervention - 9 déc. 2009 à 14:23
0
Utile
Non!!!! peut tu stp m'éclairer la dessus
Merci
Commenter la réponse de cs_Mimo11
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 9 déc. 2009 à 15:04
0
Utile
Je savais juste qu'il existait un composant permettant d'intégrer du WinForms dans du WPF. J'ai fait un peu de recherches, j'ai trouvé le nom.

Maintenant, si tu veux plus d'informations sur ce composant, tu tapes (attention, c'est bien dur) : "windowsformshost" sur google et, ô stupeur, tu tombes sur la description MSDN de la classe. Et - encore plus incroyable - il y a un exemple d'utilisation.
Tu verras ainsi qu'il suffit de définir un namespace xml (xmlns) pointant vers l'assembly windows forms puis d'insérer un contrôle de cet assembly à l'intérieur de ton WindowsFormsHost.

La prochaine fois, merci de faire des recherches avant de poser la question.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
Commenter la réponse de krimog
cs_Mimo11 12 Messages postés vendredi 10 octobre 2008Date d'inscription 25 juin 2010 Dernière intervention - 9 déc. 2009 à 16:14
0
Utile
Merci pour ta réponse
je sais que je peux chercher sur le net et je l'ai déja fait mais mon probleme c'est que tout ce que j'ai trouvé c'est des exemples pour intégrer des control prédéfini de winforms tel les Grid, MaskedTextBox et autre

moi je veux intégrer des control que j'ai créé et je n'ai pas trouvé d'exp sur ça. j'aimerai savoir ou est ce que je dois mettre le code *.cs du control etc... et coment utilisé le WindowsFormHost dans ce cas la, comment faire appel au control car en integrant le control *.cs directement ça me genere des erreurs à l'exe

Merci
Mimo
Commenter la réponse de cs_Mimo11
cs_moustik27 6 Messages postés jeudi 10 décembre 2009Date d'inscription 24 décembre 2009 Dernière intervention - 11 déc. 2009 à 12:07
0
Utile
j'ai le meme probleme, alors est ce que klk1 d'entre vous a une idée
Commenter la réponse de cs_moustik27
cs_moustik27 6 Messages postés jeudi 10 décembre 2009Date d'inscription 24 décembre 2009 Dernière intervention - 11 déc. 2009 à 14:34
0
Utile
S'il vs plait quelqu'un peut me dire comment ajoutez une référence à l'assembly WindowsFormsIntegration nommé WindowsFormsIntegration.dll dans l'Explorateur de solutions
j'ai trouver cela en cherchant une reponse a ma question
Merci
Commenter la réponse de cs_moustik27
cs_Mimo11 12 Messages postés vendredi 10 octobre 2008Date d'inscription 25 juin 2010 Dernière intervention - 11 déc. 2009 à 16:14
0
Utile
Slt Moustik
pour t'as question y'a rien de plus simple va dans l'exporateur de solution et click droit sur ton projet et selectionne ajouter une réference et choisit WindowsFormsIntegration et toute celle ke t'en a besoin
pour ce qui est du probleme de d'integration d'un control personalisé, je bloque toujours sur ça... alors si quelqu'un a une proposition, elle sera la bienvenue!
Mimo
Commenter la réponse de cs_Mimo11
krimog 1863 Messages postés lundi 28 novembre 2005Date d'inscription 14 février 2015 Dernière intervention - 11 déc. 2009 à 16:31
0
Utile
Je n'ai pas VS2008 sous la main. Mais si je ne m'abuse, lorsque l'on ajoute un xmlns, une saisie automatique nous permet de voir les différents assemblies/namespaces du projet et donc celui possédant le contrôle WinForms.
Après, il s'intègrera comme sur l'exemple MSDN

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
Commenter la réponse de krimog
cs_moustik27 6 Messages postés jeudi 10 décembre 2009Date d'inscription 24 décembre 2009 Dernière intervention - 11 déc. 2009 à 16:54
0
Utile
Merci Mimo ça a marché mais le plus dure reste a faire...:(
si je trouve une solution je te ferai signe, et si quelqu'un a une idée bein qu'il n'hesite surtout pas
Merci a toi oci Krimog pr ta réponse

Moustik ;)
Commenter la réponse de cs_moustik27
cs_moustik27 6 Messages postés jeudi 10 décembre 2009Date d'inscription 24 décembre 2009 Dernière intervention - 18 déc. 2009 à 15:34
0
Utile
Bonjour Philenain je te remercie bcp pour ta réponse mais j'ai un probleme j'ai essayé en suivant tes etapes mais mon control ne s'affiche pas a l'exe

voila mon code

using System.Windows.Forms.Integration;
using Mycontrol_namespace;


namespace Wpf_Ctl
{
/// <summary>
/// Logique d'interaction pour Window1.xaml
/// </summary>
///
public partial class Window1 : Window
{
Mycontrol ctrl = new Mycontrol();
public Window1()
{
InitializeComponent();


WindowsFormsHost host = new WindowsFormsHost();
host.Child = ctrl;
canvas1.Children.Add(host);
}

il est vrai que je retrouve les propriétés de mon control ainsi que ses fonctions mais je ne comprend pas pourquoi mon control ne s'affiche pas dans le canvas1, alors avez vous une idée sur ça car j'aimerai afficher mon control dans le canvas1;

Merci
Commenter la réponse de cs_moustik27
cs_Mimo11 12 Messages postés vendredi 10 octobre 2008Date d'inscription 25 juin 2010 Dernière intervention - 21 déc. 2009 à 17:41
0
Utile
merci Philenain ça a réglé mon probleme ;)
Commenter la réponse de cs_Mimo11
cs_Mimo11 12 Messages postés vendredi 10 octobre 2008Date d'inscription 25 juin 2010 Dernière intervention - 22 déc. 2009 à 10:24
0
Utile
slt moustik
essaye de changer ton canvas par une Grid et ça s'affichera normalement
Commenter la réponse de cs_Mimo11
cs_moustik27 6 Messages postés jeudi 10 décembre 2009Date d'inscription 24 décembre 2009 Dernière intervention - 24 déc. 2009 à 00:11
0
Utile
Merci Mimo pour ton aide ça a marché
Commenter la réponse de cs_moustik27
sofienjustdoit 6 Messages postés jeudi 12 avril 2012Date d'inscription 24 mai 2012 Dernière intervention - 2 mai 2012 à 15:38
0
Utile
Bonjour a tous , j ai une petite problème dans ce contexte et vraiment je sais pa comment faire pour le régler ..

Bon alors tous simplement :
1- j ai créer mon application WPF
2- dans mon MainWindow j ai inséré un windowsFormsHost
(pour hoster un userControl (Windows Forms) qui contient un bouton..)

= >lorsque je fais l exécution ;; mon userControl s affiche bien !!,

>La Problème!!! c'est que si je change la propriété:
-MainWindow. allowsTransparency =true
;
(avec MainWindow.WindowStyle =None;)

Le userControl devien invisible et se cache; (si je change MainWindow.allowsTransparency = false
il s affiche bien !)

Quelq'un a un solution pour afficher mon windows userControl dans mon MainWindow en gardant MainWindow.allowsTransparency =true ?????????????
Car je doit afficher des transparences dans le form MainWindow(form pas rectangulaire..)
Merci d avance :)
Commenter la réponse de sofienjustdoit
sofienjustdoit 6 Messages postés jeudi 12 avril 2012Date d'inscription 24 mai 2012 Dernière intervention - 4 mai 2012 à 18:43
0
Utile
Bonjour a tous Merci bien pour cette discussion trés utile :)

Bon , j'ai une petite problème et vraiment je sais pas comment faire pour le régler..
j 'explique :

Bon alors tous simplement :
1- j ai créer mon application WPF
2- dans mon MainWindow j ai inséré un windowsFormsHost
(pour hoster un userControl (Windows Forms) qui contient un bouton..)

lorsque je fais l exécution ; mon userControl s affiche bien !!,

>La Problème c'est que si je change la propriété:
-
Code :Sélectionner tout - Visualiser dans une fenêtre à part
MainWindow.allowsTransparency =true;
(avec MainWindow.WindowStyle=None Le userControl devien invisible et se cache;
>(si je change MainWindow.allowsTransparency =false il s affiche bien !)

Quelq'un a un soultion pour afficher mon windows userControl dans mon MainWindow en gardant MainWindow.allowsTransparency =true ?????????????

*Car je doit afficher des transparences dans le form (form pas rectangulaire..)
Merci d avance
Commenter la réponse de sofienjustdoit

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.