Question Le nom 'InitializeComponent' n'existe pas dans le contexte actuel


Si je crée un nouveau projet dans Visual Studio 2010 SP1 et sélectionnez "Application WPF" et tente de générer l'application générée, j'obtiens l'erreur

Le nom 'InitializeComponent' n'existe pas dans le contexte actuel.

J'ai eu une erreur similaire ce matin quand j'ai essayé de construire mon projet actuel. Hier, je n'ai eu aucun problème à le compiler et à le faire fonctionner.

J'ai créé un nouveau projet et j'ai eu l'erreur chaque fois que j'ai compilé le projet. Je viens d'envoyer le projet à un collègue, et il vient de compiler sans aucune erreur.

Qu'est-ce qui ne va pas?


294
2017-08-03 11:15


origine


Réponses:


Je l'ai rencontré quelques fois et continue à oublier ce qui le cause. J'ai couru dans ceci quand j'ai renommé l'espace de noms sur mon code derrière le dossier mais pas dans mon XAML.

Alors vérifiez si vous avez fait la même chose.

le espace de noms et classe les noms doivent correspondre car ils font partie d'une classe partielle

namespace ZZZ
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
         //...
    }
}

<!-- XAML -->
<Window x:Class="ZZZ.MainWindow">

584
2017-10-11 17:28



L'action de construction pour le fichier .xaml doit également être définie sur "Page", lors du déplacement d'un fichier xaml entre des projets, ce paramètre est perdu (dans VS 2010 au moins).


191
2017-11-17 16:16



Pour ceux qui (dans VS2015) n'ont pas d'erreurs en mode débogage, mais faire avoir l'erreur spécifiée en mode Release (et pourtant le projet fonctionne bien), voici quelque chose de simple à essayer:

  1. Ouvrez le fichier XAML correspondant au fichier xaml.cs incriminé.
  2. Faire un montage - toute modification, comme ajouter un espace quelque part
  3. Enregistrez le fichier et fermez-le

Cette méthode a fonctionné pour moi.


47
2017-10-14 16:14



c'est arrivé avec moi quand j'ai accidentellement supprimé la référence de la classe de la définition xaml:

J'ai remplacé le

<Window x:Class="myapp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

première ligne avec ceci:

<RibbonWindow 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

Je sais que ce n'est pas la réponse à la question originale (parce que ce projet s'appuie sur une autre machine), mais le message d'erreur était le même, alors peut-être que je vais aider quelqu'un avec cette situation.


20
2018-03-16 14:16



  1. Accédez au répertoire de la solution
  2. Supprimez le dossier \ obj
  3. Reconstruire la solution

J'ai rencontré cette erreur lors du refactoring où j'ai renommé certains fichiers / dossiers et les fichiers * .g.cs préexisants devaient être régénérés.


17
2018-04-05 20:02



Il y a une raison très spécifique à cela, et c'est dans les paramètres du projet. Cela se produit généralement lorsque vous essayez d'ajouter un contrôle / fenêtre WPF à une bibliothèque de classes .NET 2.0 ou à un projet. La raison de cette erreur est que le projet ne sait pas qu'il construit un contrôle ou une fenêtre WPF et qu'il essaie donc de le créer en tant que projet C # 2.0.

La solution implique l'édition du fichier .csproj. Faites un clic droit sur le projet à l'origine du problème et sélectionnez "Décharger le projet". Cliquez avec le bouton droit sur le projet déchargé et sélectionnez "Modifier .csproj". Le fichier .csproj s'ouvre et vous pouvez voir le XML. recherchez la ligne suivante:

<Import Project=…..

C'est près de la fin du fichier, et la seule ligne que vous avez est probablement

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

Ceci indique à Visual Studio de construire le projet en tant que projet .NET 2.0. Ce que nous voulons faire est de dire à Visual Studio qu'il s'agit en fait d'un projet WPF, nous devons donc ajouter la ligne suivante:

<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

Cette ligne indiquera à Visual Studio de construire le projet en tant que projet WPF. Maintenant, votre fichier .csproj devrait ressembler à ceci:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

Enregistrez le fichier .csproj, faites un clic droit dans l'Explorateur de solutions et sélectionnez "Recharger le projet" compiler et c'est tout, vous avez terminé!


16
2017-08-03 11:20



Assurez-vous dans le fichier xaml

<Page x:Class="Project1.Page1" ...

correspond au nom 'Project1' et au nom 'Page1'


14
2017-10-08 01:13



J'ai rencontré ceci en renommant un usercontrol. La façon dont je l'ai corrigé était de commenter InitializeComponent, vérifier que tous les noms étaient corrects (xaml et code derrière), construire le projet, décommenter InitializeComponent, puis reconstruire. On dirait qu'il peut y avoir quelques causes / solutions pour ce problème, mais de cette façon l'a fait pour moi.


12
2018-02-15 15:57



Vous pouvez obtenir cette erreur lorsque vous importez une classe d'un autre projet, ou modifiez le chemin d'accès du fichier xaml ou l'espace de noms du fichier .cs xaml ou behind.

Un: Il pourrait avoir un espace de noms différent de celui que vous avez dans votre nouveau projet

namespace TrainerB.MVC.Forms
{
     public partial class AboutDeveloper : ContentPage
     {
          public AboutDeveloper()
          {
               InitializeComponent();
          }
     }
}

Comme vous pouvez le voir, l'espace de nom du fichier importé commence par l'ancien nom du projet: "EntraîneurB", mais votre nouveau projet peut avoir un nom différent, il suffit donc de le modifier au nouveau nom de projet correct, à la fois dans le fichier .xaml et derrière le fichier .cs.

Deux:

changez les propriétés du fichier .xaml pour:

Construire l'action: Ressource intégrée

Outil personnalisé MSBuild: UpdateDesignTimeXaml

Xaml file properties

Xaml Namespace Correcting 01

Xaml Namespace Correcting 02


11
2018-05-15 22:07



J'ai eu ceci (bien que c'était vraiment ma faute et a été laissé après que j'ai copié et ai collé du code dedans); cela peut se produire lorsque l'espace de noms ne correspond pas entre le code XAML et le code derrière

PAR EXEMPLE

<UserControl x:Class="DockPanel.TreeView" />

et le code derrière est

namespace NotThePanelItShouldBe

6
2017-08-29 11:29