Visual Studio Intellisense не работает на XAML только при очень определенных обстоятельствах

Я делаю новый UserControlи когда я открыл его, XAML не работал. Я думал, что это странно, так как, когда я работал над моим MainWindow, он работал просто отлично. Итак, я проверил на моем MainWindow. Это все еще работает там. Также в коде C#. Однако, если я нажму CTRL +        это все еще подходит хорошо. Я не совсем уверен, почему. Я перешел к "Инструменты", "Параметры", "Текстовый редактор", "XAML", "Общий", и раздел "Завершение текста" выделен серым цветом (например, элементы "Автоматический список" и т. Д.). Это также отображается серым цветом, когда я вижу его в главном окне, но Intellisense работает там. Может ли кто-нибудь помочь мне? Моя версия VS - VS2012 Express, обновление 2. Единственное установленное расширение - XNA (с использованием этого "хака").

11 ответов

Решение

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

Это одна из самых неприятных вещей в разработке wpf-приложений. И вот временное решение, которое было обнаружено случайно и работает каждый раз, когда прерывается intellisense при работе с XAMl:

  • Разбить файл xaml любым способом; пример: удаление любого символа / символа

  • Нажмите F6, чтобы построить

Готово, и intellisense возвращается через пару секунд!

Есть несколько причин, по которым Intellisense может потерпеть неудачу, и если у вас есть несколько факторов в игре, вам придется сделать несколько вещей, чтобы заставить его работать, и поэтому я перечислил некоторые из вещей, которые я сделал, чтобы решить эту проблему в прошлом,

Убедитесь, что вы используете XAML Designer UI Designer или редактор исходного кода (текста) для редактирования XAML с Intellisense. Редактор XML (текст) не предоставляет Intellisense для моей установки (VS2013 Pro).

Если конструктор дает сбой из-за исключения в загруженной сборке, вы также можете потерять Intellisense. Исправьте исключение, чтобы восстановить его.

Конструктор может загружаться некорректно, если сборка в вашем проекте не является доверенной и помещена в "песочницу", что может повлиять на Intellisense.

См. Следующие статьи для получения дополнительной информации о песочнице и предоставлении полного доверия: -

http://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx

http://msdn.microsoft.com/en-us/library/ee890038(v=vs.110).aspx

Очевидно, что вы должны полностью доверять только тем сборкам, которым вы доверяете!

Чтобы обеспечить полное доверие к сборке, перейдите к сборке в проводнике Windows, откройте свойства файла и разблокируйте сборку (см. Изображение ниже).

Кроме того, удаление файлов.suo может устранить периодически возникающие проблемы Intellisense.

В моем случае IntelliSense вообще не работала с файлами MAUI XAML. Проблема заключалась в том, что ReSharper пытался переопределить IntelliSense Visual Studio по умолчанию для файлов XAML.

Чтобы исправить это, я следовал этому подходу:

Extensions > ReSharper > Options

вOptionsдиалог перейти кEnvironment > IntelliSense > General

Я выбралCustom IntelliSense, включил ReSharper IntelliSense для файлов C# и установилVisual StudioнаXAML (.xaml files). Этот параметр запрещает ReSharper внедрять свои пользовательские IntelliSense в файлы XAML. Вместо этого он позволяет Visual Studio всплывать самостоятельно.

Это то, что исправило это для меня в Visual Studio 2022 Enterprise.

В моем случае Инструменты / Параметры / Текстовый редактор / XAML / Разное / Всегда открывать документы в полном представлении XAML было отключено. После проверки и повторного открытия моего XAML-файла из Solution Explorer у меня снова появилась информация.

Это произошло в Visual Studio 2013.

В моем случае установка Properties (F4) > Build Action из *.XAML в Page исправлено IntelliSense.

Мой IntelliSense также не работал на некоторых .xamlфайлы. Затем я обнаружил, что определил оба:

<Window.DataContext>
    <core:MyDataContext/>
</Window.DataContext>

а также

<Window x:Class="Namespace.MyWindow"
        ...
        mc:Ignorable="d"
        d:DataContext="{d:DesignInstance Type=core:MyDataContext}">

Удаление того, которое, как я полагал, не было необходимым, исправило его.

Попробуйте собрать проект и развернуть его. Может быть ошибка в какой-то dll или в каком-то коде C#. Попробуйте исправить все ошибки в вашем коде C#, после этого ошибки dll будут исправлены автоматически. Теперь автозавершение кода и Intellisense должны работать в XAML. Если нет, попробуйте снова выполнить Clean-Build. Если ошибок не обнаружено, завершение кода XAML и Intellisense будут работать.

У меня такая же проблема после удаления Resharper из VS2019. В диалоговом окне параметров "Автоматические элементы списка" и связанные параметры для Текстового редактора->XAML были отключены.

Я попытался сбросить редактор по умолчанию для XAML на текстовый редактор исходного кода, нажав кнопку "Открыть с помощью..." в файле XAML, но это не сработало.

Затем я попытался обновить и даже переустановить VS, ничего не получилось.

В чистом отчаянии я вернулся к той же странице параметров, что и "автоперечисленные члены", и отключил, а затем снова включил любое свойство ("Номера строк" ​​в моем случае). Казалось, это зажгло искру, и теперь все снова хорошо.

В моем случае решение для файлов XAML IntelliSense в Xamarin было привязано к ссылкам на пакеты NuGet, я думаю, особенно к пакету Xamarin.Forms. Если у вас есть желтый предупреждающий символ на ваших пакетах, вам необходимо выполнить следующие шаги в вашем конкретном проекте: - Убедитесь, что он строится без ошибок

  • Пройти msbuild /restore [path to the specific project]- пройти .\nuget restore на ваше решение

  • Закройте и снова откройте свое решение

  • Щелкните правой кнопкой мыши соответствующий файл XAML> Открыть с помощью... > Убедитесь, что для XAML-файлов установлено значение "XAML Designer" или "Xamarin.Forms Previewer" по умолчанию.

Теперь у вас должен быть IntelliSense.

В моем случае желтые предупреждения исчезли, а затем XAML IntelliSense снова работал с файлами Xamarin.Forms.

В Visual Studio 2019 переключение и сборка между Release а также Debug мод вернул его.


x: Класс не синхронизирован

Еще я заметил, что в файле редактора моего пользовательского элемента управления x:Class="..." был вторым в очереди перед другим пространством имен.

Положив x:Class в качестве первого пространства имен для элемента управления, вернул intelisense.

Другие вопросы по тегам