web-dev-qa-db-fra.com

Comment recharger manuellement le concepteur Visual Studio pour WPF

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?

53
dthrasher

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 EndDeleteEnter (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.

33
MasterMastic

Vous pouvez ajouter cela au menu Tools dans Visual Studio.

Une fois configuré, utilisez Tools..XAML Designer Restart:

Alt+T puis L

enter image description here

enter image description here

J'ai essayé de le configurer pour Alt+T puis X mais cela s'est heurté à Tools..Choose ToolboX Items.

Mettre à jour

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).

19
Contango

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é.

12
Aleksandr Albert

Le concepteur de Visual Studio tente de conserver la vue rendue synchronisée avec le code XAML. C'est le comportement annoncé.

  • La première chose à vérifier est qu’il n’ya pas d’erreur dans la fenêtre d’erreur. Ce peut être quelque chose d'aussi simple qu'une équerre manquante.
  • La deuxième chose à vérifier est de savoir si vous avez un code (autre que votre code arrière) qui doit être compilé pour que le concepteur rende votre XAML correctement. Cela inclut tous vos types de données que vous instanciez dans XAML, tous les contrôles personnalisés que vous avez écrits (par exemple, MyTextBlock dérivé de TextBlock), ou toute classe directement ou indirectement prenant en charge les données au moment du design. Si tel est le cas, vous devez reconstruire votre projet.
  • La dernière chose à vérifier est d'éventuels bogues dans le concepteur. En dépit du comportement annoncé, le concepteur peut être désynchronisé à cause de bogues. Dans cette fermeture, fermez la fenêtre XAML et rouvrez-la. D'autres astuces qui pourraient fonctionner sont la sélection de l'onglet XAML puis de l'onglet Conception ou la maximisation du volet XAML.

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).

7
Rick Sladkey

Je ne suis pas sûr, mais je pense qu'une construction va rafraîchir votre vue dans cette situation.

3
Stefan

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?

1
gstercken

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.

1
rcube9

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.

  1. Quittez Visual Studio et redémarrez
  2. Allez dans la vue source (non scindée), tapez quelque chose et supprimez-la (pas en annulant, supprimez ou supprimez en retour) et sauvegardez la Revenez ensuite en mode Création. La vue a généralement été mise à jour.
0
Ronald

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.

0
m.eslahi.k

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.

0
Sandra Rossi