Meilleur auteur de réponses
Impossible de définir la valeur de l'attribut Name

Question
-
Bonjour,
J'essaye de créer un double panel qui s'ajuste automatiquement vis a vis de la largeur. C'est a dire, si le fenêtre fait 800px, alors il affiche les 2 panels sur une même ligne, si elle fait seulement 300px, il affiche les panels sur 2 lignes différentes. (je sais qu'il existe le wrapPanel pour faire cela. Ce double panel va être enrichie de beaucoup d'autres fonctionnalités par la suite.)
J'ai réussi a le faire en créant le contrôle THPanel2. Celui-ci possède 2 DependencyProperty de type Panel appelé Panel 1 et Panel 2.
Donc dans ma fenêtre, je suis capable de faire ça :
<THwpf:THPanel2> <THwpf:THPanel2.Panel1> <StackPanel Margin="10"> <TextBlock Text="Mon panel 1" /> <Button Content="Button" MouseLeftButtonUp="Button_MouseLeftButtonUp" /> </StackPanel> </THwpf:THPanel2.Panel1> <THwpf:THPanel2.Panel2> <StackPanel Margin="10"> <TextBlock Text="Mon panel 2" /> </StackPanel> </THwpf:THPanel2.Panel2> </THwpf:THPanel2>
Tout fonctionne, c'est absolument magnifique !
Cependant, j'ai un problème maintenant. Quand j'essaye d'ajouter la propriété Name (ou x:Name, j'ai essayé les 2) sur le bouton, Visual Studio me renvoi l'erreur suivante :
Erreur 1 Erreur de build inconnue, 'MC3093 : impossible de définir la valeur de l'attribut Name 'btn' sur l'élément 'Button'. 'Button' se trouve sous la portée de l'élément 'THPanel2', qui avait déjà un nom inscrit quand il a été défini dans une autre portée. Ligne 11 Position 29.'
Si vous avez besoin de plus de détails, j'ai créer un nouveau projet spécifique pour ce problème téléchargeable ici :http://sd-2.archive-host.com/membres/up/106010725933349121/Autre/ErrorNameSLN.zip
(Comporte le fichier SLN (Visual Studio 2012) qui contient la classe THPanel2 et MainWindow.xaml)
J'arrive pas a comprendre cette erreur. Sur internet, les seules réponses trouvées sont : "essaye de mettre x:Name au lieu de Name". Ca ne fonctionne pas. :(
Merci pour votre aide.
- Modifié Florent Banquart mercredi 11 juin 2014 09:36
mercredi 11 juin 2014 09:34
Réponses
-
Bonjour,
Avez essayé de voir cette solution : http://blog.bluecog.co.nz/archives/2007/08/27/wpf-cannot-set-name-attribute/
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCSA : SQL Server 2012
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure- Proposé comme réponse Aurel Bera jeudi 12 juin 2014 06:26
- Marqué comme réponse Aurel Bera vendredi 13 juin 2014 06:40
mercredi 11 juin 2014 23:51Modérateur
Toutes les réponses
-
Bonjour,
Avez essayé de voir cette solution : http://blog.bluecog.co.nz/archives/2007/08/27/wpf-cannot-set-name-attribute/
Cordialement
Gilles TOURREAU - MVP C#
Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
- MCSA : SQL Server 2012
- MCITP : SQL Server 2008 Developper
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure- Proposé comme réponse Aurel Bera jeudi 12 juin 2014 06:26
- Marqué comme réponse Aurel Bera vendredi 13 juin 2014 06:40
mercredi 11 juin 2014 23:51Modérateur -
Oui c'est exactement ça. Merci, c'est une solution envisageable.
Le seul problème, c'est que l'on perd la force du wpf, a savoir séparer le design du "code".
J'envisage une autre solution : Déclarer un grid dans les ressources de la page ou de la fenêtre.
<Panel1 = "{Static Ressources ...}" />
Dommage que le WPF ne soit pas assez puissant pour m'éviter les solutions de bricolage...
jeudi 12 juin 2014 15:26