Existe-t-il un moyen de forcer le concepteur WPF à recharger ou à actualiser sans reconstruire l’ensemble du projet ou de la solution?
En cas d'erreur, j'obtiens une option dans la vue concepteur pour actualiser le concepteur. Mais si je n'ai pas d'erreur, comment puis-je actualiser le concepteur après avoir apporté une modification?
Je suis un peu en retard mais c'est la meilleure solution1 J'ai trouvé jusqu'ici: chaque fois que le concepteur fait des choses stupides, je tue simplement son processus.
Presse Ctrl+Shift+Esc
Accédez à l'onglet Processus.
Kill XDesProc.exe
Cela corrige également des problèmes pour la fenêtre de propriétés (comme quand elle est coincée et que vous ne pouvez pas y taper des choses).
1 Ceci est une solution pour les problèmes de concepteur. Vos problèmes peuvent également être causés par des problèmes de compilation, auquel cas il suffit de cliquer avec le bouton droit de la souris sur la solution dans l'explorateur de solutions et de la nettoyer. La raison en est que la compilation perd parfois la synchronicité avec les fichiers générés à partir de XAML, et le nettoyage de la solution supprime simplement ces fichiers intermédiaires; c'est comme une réinitialisation pour que votre compilation puisse commencer avec une table rase.
Pour le faire vite:
Confortablement, c’est généralement le dernier si on les trie par ordre alphabétique.
Quand c’est le cas, c’est presque un rituel pour moi d’afficher rapidement le gestionnaire de tâches, de cliquer sur n’importe quel processus, puis d’appuyer sur End, Delete, Enter (terminé), Esc (quitter le gestionnaire de tâches). Au lieu de redémarrer VS et d’attendre tous les chargements et déchargements, vous pouvez le faire en 1 à 2 secondes.
Vous pouvez ajouter cela au menu Tools
dans Visual Studio.
Une fois configuré, utilisez Tools..XAML Designer Restart
:
Alt+T puis L
J'ai essayé de le configurer pour Alt+T puis X mais cela s'est heurté à Tools..Choose ToolboX Items
.
Ces jours-ci, je préfère frapper Ctrl+Shift+Esc pour faire apparaître le gestionnaire de processus, puis X pour passer à XDesProc.exe
puis Delete pour tuer le (s) processus non autorisé (s).
Dans les versions plus récentes de Visual Studio, une icône au bas du concepteur indique "Désactiver le code du projet". Si vous activez ou désactivez cette option, le concepteur sera rechargé.
Le concepteur de Visual Studio tente de conserver la vue rendue synchronisée avec le code XAML. C'est le comportement annoncé.
En ce qui concerne la reconstruction de votre application, vous n'avez pas besoin de le faire par habitude. Vous devez uniquement le recompiler lorsque les conditions ci-dessus s'appliquent. Une fois qu'ils ne s'appliquent pas, vous pouvez simplement modifier le XAML. Une autre façon de dire cela est que si vous n'avez pas modifié le code, vous ne devriez pas avoir besoin de reconstruire (bogues modulo).
Je ne suis pas sûr, mais je pense qu'une construction va rafraîchir votre vue dans cette situation.
Au moins en théorie, la vue Conception est toujours synchronisée avec le code XAML. Il n'est donc pas nécessaire de l'actualiser manuellement. Puis-je vous demander dans quelles circonstances voudriez-vous le recharger?
Ce fichier XAML contient un événement quelconque. Dans ce cas, la prévisualisation de la conception de Visual Studio n’est généralement pas affichée. Si vous souhaitez voir la conception de Visual Studio, essayez avec la liaison de commande au lieu d’événement, vous verrez l’aperçu.
Je ne sais pas comment cela fonctionne dans l'édition WPF, mais avec les pages ASP.NET, lorsque la vue de conception ne se met pas à jour, je peux faire 2 choses.
Lorsque vous ajoutez une nouvelle ligne de code ou un nouvel objet, le concepteur XAML est synchronisé mais j'ai rencontré un comportement de non-synchronisation lorsqu'une propriété d'un objet est modifiée.
Un moyen délicat est que lorsque vous modifiez une propriété, il vous suffit de supprimer un caractère ">" à la fin d'une instruction, puis de la retaper.
Pour information, j'ai eu le même problème avec le concepteur XAML de Visual Studio Community 2017. En d'autres termes, le concepteur n'affiche rien, la solution la plus simple consiste à fermer le fichier XAML et à le rouvrir.
Je reçois aussi fréquemment l'exception "Une exception non gérée s'est produite - Cliquez ici pour recharger le concepteur - Détails: le concepteur XAML s'est arrêté de manière inattendue" (le clic redémarre le concepteur avec succès).
Notez que, dans cette version de VS, le processus du concepteur XAML n'est pas nommé XDesProc.exe, mais UwpSurface.exe . Si vous préférez ou devez arrêter le processus, le concepteur affiche la même exception que ci-dessus et vous pouvez le redémarrer.