Конструктор BlankPage не может инициализировать компоненты

Я начинаю изучение XAML, и я добавляю код в мое приложение BlankPage. И вдруг конструктор, инициализирующий компонент:

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

Прекратите работать. У меня есть эта ошибка:

'BlankApplication.BlankPage' не содержит определения для 'InitializeComponent', и не может быть найден метод расширения 'InitializeComponent', принимающий первый аргумент типа 'BlankApplication.BlankPage' (вам не хватает директивы using или ссылки на сборку? )

Честно говоря, я ничего не делал, я даже не смотрел эту часть кода, и теперь это не работает.

Снимок экрана:

Ответ 1

Проблема решена. Причина. Я забыл также изменить имя пользовательского приложения в коде xaml. Решение: я изменил имя приложения в XAML, теперь он работает хорошо.

Ответ 2

Просто, чтобы дать немного больше информации о том, как исправить это (поскольку это объяснение немного на неопределенной стороне).

Эта проблема (для меня) была вызвана тем, что я изменил пространство имен в коде после создания проекта. Чтобы исправить эту проблему, мне пришлось внести некоторые изменения в несколько мест:

1: В App.xaml мне пришлось изменить следующее:

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

2: В MainPage.xaml мне пришлось изменить следующее:

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

Вы также захотите, чтобы вы изменили строку "namespace" в своем App.xaml.cs, а также ваш MainPage.xaml.cs.

Наконец, вы также захотите, чтобы вы обновили точку входа проекта в Package.appxmanifest, чтобы указать на "New.Namespace.App".

Ответ 3

Это происходит, когда вы меняете пространство имен для класса, вы должны делать то же самое внутри файла XAML.

В файле XAML есть два места со старым пространством имен.

Ответ 4

Если пространство имен вашего основного класса отличается от атрибута .xaml file 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 на;

х: Класс = "UWPControls.MainPage"

Ответ 5

Для меня проект был внутри решения с другими проектами. Когда предлагаемые здесь предложения не сработали, простая выгрузка и перезагрузка проекта из решения сделали свое дело и исправили все ошибки (с перестройкой, конечно).

Ответ 6

Мое решение: для моей "SomePage: ContentPage" я изменил свойства XAML:

  • Генератор (пользовательский инструмент): от MSBuild:Compile до MSBuild:UpdateDesignTimeXaml
  • BuildAction: от Page до Embedded resource

Использование Visual Studio 2017 Enterprise 15.3.4