Bonjour a tous
Je suis entrain de réaliser une application en WPF et j'aimerai integrer des control personnalisés que j'ai créé en winforms.
Est ce que quelqu'un pourrait me fournir des pistes qui me permettrait de le faire ?
Merci de m'aider.
Bonjour a tous
Je suis entrain de réaliser une application en WPF et j'aimerai integrer des control personnalisés que j'ai créé en winforms.
Est ce que quelqu'un pourrait me fournir des pistes qui me permettrait de le faire ?
Merci de m'aider.
Salut,
il faut utiliser le contrôle WIndowsFomrsHost :
http://msdn.microsoft.com/en-us/libr...formshost.aspx
je crois qu'il faut ajouter une référénce qui n'y est pas par défaut, cherche dans l'onglet références .NET un truc avec FormsIntegration dans le nom.
oui quand tu rajoute il integre cette assembly
par contre apres faut metter system.windows.forms
avec un xmlns pour trouver les composants
par exemple ca donne ca avec un propertygrid
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:form="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" Title="Window1" Height="500" Width="551"> <Grid Background="Azure"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="200" /> </Grid.ColumnDefinitions> <DockPanel> </DockPanel> <WindowsFormsHost Grid.Column="1" Name="windowsFormsHost1" > <form:PropertyGrid x:Name="propertygrid" /> </WindowsFormsHost> </Grid> </Window>
Merci pour vos réponse maintenant j'ai bien saisie comment intégré un control winfroms dans une appli WPF mais mon probleme maintenant est comment intégré un control personnalisés que j'ai créé
j'ai integré le code du control "MyGrid" dans mon appli wpf et dans l'explorateur de solutions j'ai ajouté les référence nécessaire pour que les using soit reconnu maintenant mon appli ne signale aucune erreur mais dans la barre d'outil j'ai pas le control MyGrid comme dans winformsje ne sais pas comment est ce que je peux y accéder. Si quelqu'un d'entre vous a une solution...
Merci bcp
![]()
Tu dois réaliser un alias dans le code xaml : regarde en haut du document xaml, parmi les attributs de l'élément racine (ta page, ton UserControl, ta Window...), tu peux void par ex. "xmlns=....".
Tu dois réaliser la même chose pour pointer vers le namespace de ton contrôle personnalisé. En fait tu tape "xmlns:exemple=" et l'intellisense te permet de choisir l'espace de noms cible. Ensuite, là où tu veux mettre ton contrôle, tu tape "exemple:" et l'intellisense devrait de proposer ton contrôle.
En code ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <Window x:Class="MonAppli.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:monNamespace="clr-namespace:MMaSociete.MonNamespace;assembly=monProjet"> <WindowsFormsHost> <monNamespace:myGrid/> </WindowsFormsHost>
Bonjour tout d'abord je tien a te remercier pour ton aide ça m'a bcp servie et j'ai enfin réussi a insérer mon Control
maintenant je n'arrive pas a utiliser les fonction du control bien qu'elle sont bien défini dans le code du control et j'ai bien ajouté toute les références, j'ai toujours un probleme![]()
par exemple sur Winforms je pouvai mettrepour réinitialiser ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part MyGrid1.Renit();pour remplir la grid maintenant a la complilation ça me signale l'erreur suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part MyGrid1.Add()et c'est le cas pour toutes les fonctions alors qu'elles sont bien définies dans le control et elle ne pose aucun probleme au niveau du code.System.windows.controls.MyGrid ne contient pas une définition pour Renit et aucune methode d'extention Renit accepte un premier argument de type windows.control.MyGrid n'a été trouvé (une directive using ou une référence d'assembly est elle manquante ?)
Merci
Partager