【问题标题】:BlankPage constructor cannot initialize componentsBlankPage 构造函数无法初始化组件
【发布时间】:2012-05-03 05:44:14
【问题描述】:

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

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

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

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

老实说我什么都没做,我什至没有看这部分代码,现在它不起作用了。

截图:

【问题讨论】:

  • 即使我开始一个新项目仍然存在这个错误。
  • 你说你添加了一些代码。你加了什么?
  • 问题已解决,我没有在 xaml 代码中更改自定义应用程序名称。
  • 请将解决方案作为答案发布,这样它也可以帮助其他人。
  • 嗨 - 我也遇到了同样的事情,正在学习 MS “Metro” 教程。 “我什么都没做”...除了以错误的名称启动项目(“WindowsBlogViewer”,而不是“WindowsBlogReader”)。当我从教程中剪切/粘贴 XAML 代码(具有 正确 命名空间的代码:“using:WindowsBlogReader”)时,我得到了“xyz.BlankPage”不包含“InitializeComponent”错误的定义。解决方法是使用正确的命名空间(“WindowsBlogReader”)重新创建项目。

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


【解决方案1】:

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

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

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 中的项目入口点更新为指向“New.Namespace.App”。

【讨论】:

  • 我的问题是 MainPage.xaml 页面底部显示的一个看不见的错误。
  • 我在解决方案的错误项目中添加了一个 ContentDialog,当我移动它时,我没有更改 XAML 中的命名空间。这让我知道了这个问题。谢谢!
【解决方案2】:

如果您的 Main 类的 namespace 与 .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"

【讨论】:

  • 您的解决方案最适合手头的问题(OP 发布的问题)。与该问题相关的很好的解释。我认为OP 稍后试图解释它,但可能无法像你那样做 - 因此他删除了他的回复,如下所示。 OP 应将您的回复标记为 Answer,以便其他人可以从中受益。
【解决方案3】:

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

XAML 文件中有两个地方使用旧的命名空间。

【讨论】:

    【解决方案4】:

    对我来说,该项目与其他项目一起在解决方案中。当此处的建议不起作用时,一个简单的从解决方案中卸载和重新加载项目就可以解决所有错误(当然需要重建)。

    【讨论】:

      【解决方案5】:

      我的解决方案:对于我的“SomePage : ContentPage”,我更改了 XAML 属性:

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

      使用 Visual Studio 2017 Enterprise 15.3.4

      【讨论】:

        【解决方案6】:

        问题解决了。 原因:我忘记在 xaml 代码中更改自定义应用程序名称。 解决方案:我在 XAML 中更改了应用程序名称,现在可以正常使用了。

        【讨论】:

        • -1。如果您要回答自己的问题,则应以与回答他人问题相同的质量回答。
        • 通过改变它。我以前没有,这就是问题所在。
        • 这实际上帮助了我。我编辑了答案的措辞以使其更清晰,但它指出了正确的问题。你们英国纯粹主义者已经停止投票了:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        • 2021-02-07
        • 1970-01-01
        • 2011-05-02
        相关资源
        最近更新 更多