2013-07-25 8 views
28

Ciao, sto ricevendo un errore di InitializeComponent nella mia pagina app.xaml.cs Ho controllato la rete e tutto, ma nessuna soluzione funziona. Per favore aiuto.Il nome 'InitializeComponent' non esiste nel contesto corrente. Impossibile ottenere aiuto sulle ricerche nette

InitializeComponent does not exist

C# di file:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Animation; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 
using Microsoft.Phone.Controls; 
using Microsoft.Phone.Shell; 
using Newtonsoft.Json; 

namespace Miser_sApp 
{ 
    public partial class App : Application 
    { 
      /// <summary> 
     /// Provides easy access to the root frame of the Phone Application. 
     /// </summary> 
     /// <returns>The root frame of the Phone Application.</returns> 
      public PhoneApplicationFrame RootFrame { get; private set; } 

     /// <summary> 
     /// Constructor for the Application object. 
     /// </summary> 
     public App() 
     { 
      // Global handler for uncaught exceptions. 
       UnhandledException += Application_UnhandledException; 

      // Standard Silverlight initialization 
      InitializeComponent(); 

      // Phone-specific initialization 
      InitializePhoneApplication(); 

      // Show graphics profiling information while debugging. 
      if (System.Diagnostics.Debugger.IsAttached) 
      { 
       // Display the current frame rate counters. 
       Application.Current.Host.Settings.EnableFrameRateCounter = true; 

       // Show the areas of the app that are being redrawn in each frame. 
       //Application.Current.Host.Settings.EnableRedrawRegions = true; 

       // Enable non-production analysis visualization mode, 
       // which shows areas of a page that are handed off to GPU with a colored overlay. 
       //Application.Current.Host.Settings.EnableCacheVisualization = true; 

       // Disable the application idle detection by setting the UserIdleDetectionMode property of the 
       // application's PhoneApplicationService object to Disabled. 
       // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run 
       // and consume battery power when the user is not using the phone. 
       PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled; 
      } 

     } 

     // Code to execute when the application is launching (eg, from Start) 
     // This code will not execute when the application is reactivated 
     private void Application_Launching(object sender, LaunchingEventArgs e) 
     { 
     } 

     // Code to execute when the application is activated (brought to foreground) 
     // This code will not execute when the application is first launched 
     private void Application_Activated(object sender, ActivatedEventArgs e) 
     { 
     } 

     // Code to execute when the application is deactivated (sent to background) 
     // This code will not execute when the application is closing 
     private void Application_Deactivated(object sender, DeactivatedEventArgs e) 
     { 
     } 

     // Code to execute when the application is closing (eg, user hit Back) 
     // This code will not execute when the application is deactivated 
     private void Application_Closing(object sender, ClosingEventArgs e) 
     { 
     } 

     // Code to execute if a navigation fails 
     private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e) 
     { 
      if (System.Diagnostics.Debugger.IsAttached) 
      { 
       // A navigation has failed; break into the debugger 
       System.Diagnostics.Debugger.Break(); 
      } 
     } 

     // Code to execute on Unhandled Exceptions 
     private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
     { 
      if (System.Diagnostics.Debugger.IsAttached) 
      { 
       // An unhandled exception has occurred; break into the debugger 
       System.Diagnostics.Debugger.Break(); 
      } 
     } 

     #region Phone application initialization 

     // Avoid double-initialization 
     private bool phoneApplicationInitialized = false; 

     // Do not add any additional code to this method 
     private void InitializePhoneApplication() 
     { 
      if (phoneApplicationInitialized) 
       return; 

      // Create the frame but don't set it as RootVisual yet; this allows the splash 
      // screen to remain active until the application is ready to render. 
      RootFrame = new PhoneApplicationFrame(); 
      RootFrame.Navigated += CompleteInitializePhoneApplication; 

      // Handle navigation failures 
      RootFrame.NavigationFailed += RootFrame_NavigationFailed; 

      // Ensure we don't initialize again 
      phoneApplicationInitialized = true; 
     } 

     // Do not add any additional code to this method 
     private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e) 
     { 
      // Set the root visual to allow the application to render 
      if (RootVisual != RootFrame) 
       RootVisual = RootFrame; 

      // Remove this handler since it is no longer needed 
      RootFrame.Navigated -= CompleteInitializePhoneApplication; 
     } 

     #endregion 
    } 
} 

file XAML:

<Application 
    x:Class="Miser_sApp.App" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" 
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"> 

    <!--Application Resources--> 
    <Application.Resources> 
    </Application.Resources> 

    <Application.ApplicationLifetimeObjects> 
     <!--Required object that handles lifetime events for the application--> 
     <shell:PhoneApplicationService 
      Launching="Application_Launching" Closing="Application_Closing" 
      Activated="Application_Activated" Deactivated="Application_Deactivated"/> 
    </Application.ApplicationLifetimeObjects> 

</Application> 

ho caricato i app.xaml contenuti. Non ho apportato alcuna modifica al suo interno.

risposta

96

Ci sono due potenziali cause di questo.

  1. Il più comune è il x: Class non corrisponde con lo spazio dei nomi MainPage.xaml. Assicurati che x: Class in MainPage.xaml abbia lo spazio dei nomi corretto.

  2. La seconda causa più comune di questo problema è che "Build Action" non è impostato su "Page" per MainPage.xaml!

+9

+1 Quando ho spostato l'XAML da un csproj a un altro, BuildAction è stato interrotto. Resettando su "Pagina" ha funzionato. –

+1

btw l'ho risolto rimuovendo la proprietà click da un pulsante che era stato definito due volte per errore, quindi qualsiasi errore di sintassi del file xaml causa anche questo problema .. –

3
  1. Garantire la BuildAction del vostro App.xaml è impostato su "ApplicationDefinition"
  2. Eliminare la cartella "obj" nel progetto, ricostruire.
  3. Se il problema persiste, eliminare il carattere "_" nel proprio spazio dei nomi.
+1

+1 Eliminazione della cartella 'obj' mi ha aiutato! Grazie – opewix

2

Ho avuto lo stesso errore di compilazione ma l'azione di creazione era già impostata su Page. Cercando l'azione di generazione impostata su ApplicationDefinition (errore: può esserne disponibile una sola), e reimpostandola su Page, risolto l'errore di compilazione. Sembra magia nera, ma ha funzionato per me.

+1

La magia nera, lo è! Questa è stata l'unica cosa che ha funzionato per me. Tutto il resto è stato impostato correttamente. – gregsdennis

+0

Oh, non per me ... – webo80

+0

Non mi piace ma sembra funzionare per me! – Trowa

0

Ecco un'altra possibilità, dopo aver esaurito tutto quanto sopra (così come alcuni altri sparsi su Internet): assicurati che l'oggetto Startup sia correttamente impostato su [Project] .App in Proprietà progetto> scheda Applicazione.

Avevo rinominato alcuni spazi dei nomi e da qualche parte nel processo VS impostava l'oggetto Esecuzione automatica su "(non impostato)".

+0

Gli oggetti di avvio sono la soluzione, non il progetto – Sinaesthetic

0

La mia soluzione era di impostare la proprietà Build Action di Package.appxmanifest su AppxManifest. :)

9

Questa è la stessa di domande e risposte qui: The name 'InitializeComponent' does not exist in the current context

Si potrebbe ottenere questo errore quando si importa una classe da un altro progetto, o modificare il percorso del file XAML, o lo spazio dei nomi sia del xaml o dietro il file .cs.

One: Potrebbe avere uno spazio dei nomi che non è lo stesso di quello che hai in te nuovo progetto

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

Come si può vedere lo spazio nome nel file importato inizia con il vecchio nome del progetto : "TrainerB", ma il tuo nuovo progetto potrebbe avere un nome diverso, quindi basta cambiarlo con il nuovo nome del progetto corretto, sia nel file .xaml che nel file .cs precedente.

Due:

modificare le proprietà del file XAML a:

Corporatura Azione: Risorsa incorporata

strumento personalizzato: MSBuild: UpdateDesignTimeXaml

Xaml file properties

Xaml Namespace Correcting 01

Xaml Namespace Correcting 02

+0

Grazie amico .. Funziona – Pehlaj

+0

come accedere a questo file xaml per favore? @reader Man San – Zame

0

1) Nel file XAML, selezionare la x: nome del layout principale. Rinominarlo 2) Compilare. Dovrebbe generare errori 3) Torna al file xaml e fornire lo stesso nome di classe associato al codice dietro al file (file .cs). Includere anche lo spazio dei nomi. es .: se namespace è "X" e il nome della classe è "Y", x: Name = "X.Y" 4) Compila. Dovrebbe funzionare.

0

Questo ha funzionato per me, Prova Ctrl +S sulle pagine che ti danno questo errore. L'errore si è verificato quando il mio studio visivo si è bloccato (riavviato). Le pagine su cui stavo lavorando (prima del riavvio) non sono state completate. Che mi ha portato a pensare che il file non ha salvato correttamente. Quindi, Ctrl + S. Questo ha risolto il mio problema.

+0

Spiega (e fornisci) il tuo suggerimento. Perché pensi che potrebbe risolvere il problema? – JosefZ