35

Hi I am getting an error of InitializeComponent in my app.xaml.cs page I have checked the net and everything but no solution works. Please help.

InitializeComponent does not exist

C# 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
    }
}

XAML file:

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

I have uploaded the app.xaml contents. I have not made any changes in it.

Jeankowkow
  • 752
  • 10
  • 28
nik
  • 546
  • 1
  • 7
  • 13

10 Answers10

129

There are two potential causes of this.

  1. The most common is the x:Class doesn't match up with the MainPage.xaml namespace. Make sure that x:Class in MainPage.xaml has the correct namespace.

  2. The second most common cause of this problem is that the "Build Action" is not set to "Page" for MainPage.xaml!

Matt
  • 70,063
  • 26
  • 142
  • 172
Rich Bianco
  • 3,991
  • 3
  • 25
  • 44
  • 10
    +1 When I moved around the XAML from one csproj to another, the BuildAction was broken. Resetting it to "Page" worked. – Angshuman Agarwal Nov 20 '13 at 10:03
  • 4
    btw i solved it by removing the click property from a button which was defined twice by mistake , so any xaml file syntax error causes this issue too.. – sandeep_kosta Jan 01 '16 at 09:41
  • As a side note: If you get this error after changing to use `dotnet msbuild` instead of the classic msbuild, you need to add a /t:Restore to the build command. – Hans Hardmeier Oct 02 '20 at 14:53
14

This is the same question and answer here: The name 'InitializeComponent' does not exist in the current context

You might get this error when you import a class from another project, or change the path of the xaml file, or the namespace of either the xaml or behind .cs file.

One: It might have a namespace that is not the same as what you have in you new project

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

As you can see the name space in the imported file begins with the old project name: "TrainerB", but your new project might have a different name, so just change it to the correct new project name, in both the .xaml file and the behind .cs file.

Two:

change the properties of the .xaml file to:

Build Action: Embedded Resource

Custom Tool: MSBuild:UpdateDesignTimeXaml

Xaml file properties

Xaml Namespace Correcting 01

Xaml Namespace Correcting 02

Community
  • 1
  • 1
Reader Man San
  • 1,959
  • 1
  • 14
  • 9
4
  1. Ensure the BuildAction of your App.xaml is set to "ApplicationDefinition"
  2. Delete the "obj" folder in the project, rebuild.
  3. If the problem persist, get rid of the "_" character in your namespace.
Soonts
  • 15,806
  • 9
  • 45
  • 100
3

I had the same build error but the build action was already set to Page. Trying Build Action set to ApplicationDefinition (error: there can only one instance of that), and setting it back to Page, fixed the build error. Sounds like black magic, but it worked for me.

Roland
  • 3,391
  • 5
  • 32
  • 63
1

In my case, I had set build action of XAML page to Embedded Resource, reverting it to Page fixed the issue.

Morse
  • 5,778
  • 5
  • 31
  • 55
0

Here's one other possibility, after exhausting all the above (as well as a few others scattered about the internet): make sure that your Startup object is correctly set to [Project].App in your Project Properties > Application tab.

I had renamed some namespaces, and somewhere in the process VS set the Startup object to "(not set)".

0

My solution was to set the Build Action property of Package.appxmanifest to AppxManifest. :)

AndBecaPine
  • 1,175
  • 2
  • 11
  • 26
0

1) In the xaml file, check the x:Name of the main layout. Rename it 2) Compile. It should throw errors 3) Go back to the xaml file and give the same class name as it associated code behind file has (.cs file) Also include the namespace. eg: if namespace is "X" and class name is "Y", x:Name = "X.Y" 4) Compile. It should work.

Nahid
  • 23
  • 5
0

This worked for me, Try Ctrl+S on the pages that give you this error. The error came about, when my visual studio crashed(restarted). The pages I was working on(before the restart) didnt failed to build. Which lead me to think the didnt save correctly. Hence, Ctrl+S. That solved my issue.

  • Please explain (and source) your suggestion. Why do you think that it might solve the problem? – JosefZ May 28 '17 at 11:06
0

After successful builds, when the error occurs, close VS, delete the hidden .vs folder in your project (this clears intellisense). Open VS, the error is gone.

pollaris
  • 1,058
  • 14
  • 18