BlankPage构造函数无法初始化组件

时间:2012-04-22 08:53:57

标签: c# xaml windows-8 microsoft-metro

我正在启动learning XAML,我在BlankPage应用程序中添加了一些代码。突然间,一个构造函数正在初始化一个组件:

    public BlankPage()
    {
        this.InitializeComponent();
    }

停止工作。我现在遇到了这个错误:

  

'BlankApplication.BlankPage'不包含'InitializeComponent'的定义,并且没有扩展方法'InitializeComponent'接受类型为'BlankApplication.BlankPage'的第一个参数'(您是否缺少using指令或程序集引用? )

老实说,我没有做任何事情,我甚至没有看过这部分代码,现在它不起作用。

屏幕截图:

6 个答案:

答案 0 :(得分:13)

只是提供一些关于如何解决这个问题的更多信息(因为这个解释有点模糊不清)..

这个问题(对我而言)是因为我在创建项目后更改了代码中的命名空间。为了解决这个问题,我不得不在几个地方进行一些更改:

1:在App.xaml中,我必须更改以下内容:

<Application
  x:Class="New.Namespace.App"

2:在MainPage.xaml中,我必须更改以下内容:

<Page
  x:Class="New.Namespace.MainPage"

您还需要确保更改App.xaml.cs以及MainPage.xaml.cs中的“命名空间”行。

最后,您还需要确保更新Package.appxmanifest中的Project Entrypoint以指向“New.Namespace.App”。

答案 1 :(得分:3)

当您更改类的命名空间时,会发生这种情况,您必须在XAML文件中执行相同的操作。

XAML文件中有两个带有旧命名空间的位置。

答案 2 :(得分:0)

如果您的主类的命名空间与.xaml文件的 x:Class 属性不同,则会出现此错误。例如;

您的MainPage.xaml.cs;

    namespace UWPControls
    {
        /// <summary>
        /// An empty page that can be used on its own or navigated to within a Frame.
        /// </summary>
        public sealed partial class MainPage : Page
        {
            public MainPage()
            {
                this.InitializeComponent();
            }
        }
    }

您的MainPage.xaml;

<Page
    x:Class="UWPControls_Different.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:UWPHelloWorld"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
</page>

在将 x:class 更改为之前,您将看到错误。

  

x:Class =“ UWPControls.MainPage”

答案 3 :(得分:0)

对我来说,该项目是其他项目的内部解决方案。如果此处的建议不起作用,则可以通过简单的从解决方案中卸载和重新加载项目来解决问题,并修复所有错误(当然需要重新构建)。

答案 4 :(得分:-1)

我的解决方案:对于我的&#34; SomePage:ContentPage&#34;,我更改了XAML属性:

  • 生成器(自定义工具):从MSBuild:CompileMSBuild:UpdateDesignTimeXaml
  • BuildAction:从PageEmbedded resource

使用Visual Studio 2017 Enterprise 15.3.4

答案 5 :(得分:-3)

问题解决了。 原因:我忘了也在xaml代码中更改自定义应用程序名称。 解决方案:我在XAML中更改了应用程序名称,现在效果很好。