J'ai du code écrit en C# WPF, et j'ai du code pour le débogage, que je compile actuellement en mode debug ou release. Comment puis-je activer ou désactiver les contrôles de l'interface utilisateur qui sont actuellement écrits dans mon code XAML en fonction des définitions du préprocesseur C#?Compilation conditionnelle du préprocesseur en XAML
Répondre
Vous pouvez ajouter du code dans le constructeur qui active/désactive les éléments:
public MainWindow()
{
InitializeComponent();
#if DEBUG
button1.IsEnabled = false;
#endif
}
Je pensais vraiment à comment ils pourraient tout simplement ne pas exister en premier lieu, mais je suppose que cela fera l'affaire. – Puppy
Il n'est pas possible d'analyser XAML en fonction des symboles du préprocesseur. Je crois que c'est ce que vous cherchez? –
Vous ne pouvez pas le faire sur les symboles du préprocesseur, mais Xaml prend en charge la compilation conditionnelle des sections, en utilisant les fonctions de compatibilité des annotations. La réponse de ptahmose renvoie à une question qui renvoie à un article sur ceux-ci. C'est aussi proche que tu l'auras. –
Il y a deux façons de le faire. L'un d'eux utilise les directives du préprocesseur qui peuvent masquer des sections complètes de code ne l'exécutant que dans une construction particulière. Ou vous pouvez utiliser l'attribut conditionnel pour bloquer facilement une méthode complète. http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=420
Voici une description de la différence entre les deux: http://www.thinkfarahead.com/2007/09/if-debug-vs-conditional.html. Vous pouvez référencer les contrôles dans votre code en fournissant un attribut x: Name dans xaml et en mettant le code pour désactiver les contrôles dans la section conditionnelle de votre code.
Mis à jour: pour être plus clairement mentionné x: Attribut de nom.
Ces liens concernent la compilation conditionnelle C#. Ils ne sont pas applicables à Xaml. La question portait sur Xaml. –
Non lu attentivement: "Contrôles définis dans xaml" ... "basé sur les définitions du pré-processeur C#" Les contrôles sont en xaml. Il veut désactiver en C# – basarat
Il n'existe aucune directive de style de préprocesseur pour XAML. Toutefois, vous pouvez inclure et exclure des fichiers XAML en fonction de la configuration de la version, ce qui vous permet de disposer d'un certain contrôle. Cela pourrait vous fournir un moyen d'inclure des variantes d'un fichier en fonction de la configuration de construction choisie. Bien sûr, l'inconvénient est que vous devez maintenir plusieurs versions d'un fichier. Cela pourrait être atténué par l'utilisation de T4 templates afin que les différents fichiers soient générés automatiquement en fonction de la configuration sélectionnée.
- 1. Compilation conditionnelle en Python
- 2. # inclure en C# (compilation conditionnelle)
- 3. Compilation conditionnelle
- 4. Compilation conditionnelle dans Visual Studio (C#)
- 5. Compilation conditionnelle d'espaces de noms entiers - C#
- 6. Compilation conditionnelle selon la version du compilateur VC++
- 7. Compilation conditionnelle GWT
- 8. xcode compilation conditionnelle
- 9. Compilation conditionnelle - Phasing out Partie du code en C#
- 10. Compilation conditionnelle en code assembleur (.s) pour iPhone - comment?
- 11. La compilation conditionnelle est désactivé
- 12. Horodateur du préprocesseur
- 13. Constante de compilation conditionnelle au niveau du projet
- 14. Configuration du symbole de compilation conditionnelle dans le fichier app.config
- 15. GWT - Compilation conditionnelle basée sur le navigateur
- 16. Instruction de compilation conditionnelle dans limits.h
- 17. msbuild, définition des symboles de compilation conditionnelle
- 18. Compilation conditionnelle pour travailler à la maison
- 19. Compilation conditionnelle dans les fichiers .aspx
- 20. Instruction du préprocesseur Testrun
- 21. Compilation conditionnelle en C++ basée sur le système d'exploitation
- 22. Compilation conditionnelle dans un document LaTeX
- 23. Directives du préprocesseur
- 24. Directives du préprocesseur VB.NET
- 25. Script # directives du préprocesseur?
- 26. Décisions du préprocesseur C++
- 27. Préprocesseur C++
- 28. Xcode & préprocesseur ##
- 29. Compilation conditionnelle Cython basée sur la valeur externe
- 30. Compilation de ffmpeg et utilisation du préprocesseur à gaz sur Tiger?
Il n'y a pas de préprocesseur en C# mais des directives de préprocesseur sont traitées comme s'il y en avait une. http://msdn.microsoft.com/en-us/library/ed8yd1ha(v=VS.100).aspx –
duplication possible de [XAML Conditional Compilation] (http://stackoverflow.com/questions/1213576/xaml- compilation-conditionnel) –