Visual Studio Intellisense在XAML上不工作,仅在非常特定的情况下。

13
我正在制作一个新的UserControl,但当我打开它时,XAML无法工作。我觉得这很奇怪,因为当我在我的MainWindow上工作时,它仍然可以正常工作。所以我检查了一下我的MainWindow,它仍然可以正常工作,而且C#代码也是如此。但是,如果我按CTRL +       ,它仍然可以正常显示。我不太确定为什么会出现这种情况。我去了Tools➾Options➾Text Editor➾XAML➾General,发现文本完成部分被禁用了(例如自动列出成员等)。当我在主窗口中看到它时,它也是灰色的,但智能感知在那里运行。

有人能帮助我吗?我的VS版本是VS2012 Express,更新2。唯一安装的扩展是XNA(使用this“hack”)。


问题本身没有任何问题,所以点个赞。当人们这样做时,应该留下评论。感谢您安装“VS2012 Update 2”的提示,我希望它也能修复我的XAML IntelliSense。 - denis morozov
11个回答

10

我必须说,开发WPF应用程序中最令人沮丧的事情之一就是这个。以下是一个临时解决方案,偶然发现并在使用XAML时每次都有效:

  • 通过任何方式中断XAML文件;例如:删除任何字符/符号

  • 按F6进行构建

完成后,Intellisense将在几秒钟内恢复!


1
刚在VS2012中遇到了这个问题,重启了VS和我的电脑,清除了我的SUO并进行了多次清理/重建,但我仍然没有智能感知。我删除了单个元素上的一个闭合>,尝试构建(并得到了一个错误),然后把它放回去,我的智能感知又可以工作了。这是一个很好的解决方案,在尝试更复杂的操作之前绝对值得一试。 - goldenratio
4
这项解决方法似乎在VS2019中已经不再有效,现在唯一可行的解决方法(同样适用于旧版VS)是将构建从Debug改为Release,然后再改回来。 - bokibeg

8

哦,我刚才重启了它,现在它又可以工作了。问题是,在此之前,即使我重启了它,它依然无法正常工作。我尚未找到潜在的问题所在,但现在问题已经得到解决。


5

有几个原因可能会导致Intellisense失败,如果有几个因素同时存在,您将不得不采取几个措施来使其正常工作,因此我列出了一些过去解决此问题的方法。

确保您使用XAML UI设计器或源代码(文本)编辑器来编辑具有Intellisense的XAML。 XML(文本)编辑器在我的安装(VS2013 Pro)上不提供Intellisense。

如果设计师由于加载的程序集中的异常而崩溃,则您也可能会失去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资源管理器中浏览到程序集并打开文件属性,取消程序集的阻止(请参见下面的图像)。

enter image description here

此外,删除 .suo 文件可以清除间歇性的 Intellisense 问题。

1
真令人沮丧。我将默认编辑器更改为XML,这样就不会再出现烦人的设计师了。正如你建议的那样,将其设置为文本编辑器解决了问题。 - Slime recipe

3
在我的情况下,IntelliSense 在 MAUI XAML 文件上根本无法工作。问题是 ReSharper 尝试覆盖 XAML 文件的默认 Visual Studio IntelliSense。
为了解决这个问题,我采用了以下方法:
扩展 > ReSharper > 选项
在“选项”对话框中,转到“环境 > IntelliSense > 通用”
我选择了“自定义 IntelliSense”,在 C# 文件上启用了 ReSharper IntelliSense,并将“Visual Studio”设置为“XAML (.xaml 文件)”。这个选项可以防止 ReSharper 向 XAML 文件注入其自定义 IntelliSense。相反,它让 Visual Studio 弹出自己的 IntelliSense。
这就是我在 Visual Studio 2022 Enterprise 上解决问题的方法。

1
在我的情况下,工具 / 选项 / 文本编辑器 / XAML / 杂项 / 总是以完整的XAML视图打开文档未被勾选。在勾选它并从解决方案资源管理器重新打开我的XAML文件后,智能感知又回来了。
这发生在Visual Studio 2013中。

1
在我的情况下,将*.XAML属性 (F4) > 生成操作设置为Page可以解决 IntelliSense 的问题。

0

我在从VS2019卸载Resharper后遇到了同样的问题。在选项对话框中,“自动列出成员”和与Text Editor->XAML相关的选项被禁用。

我尝试通过在XAML文件上单击“打开方式...”将默认编辑器重置为源代码文本编辑器,但没有起作用。

然后我尝试更新甚至重新安装VS,但仍然无法解决问题。

在绝望中,我回到了“自动列出成员”选项页面,并禁用,然后重新启用任何属性(例如我的情况是“行号”)。这似乎点燃了一把火,现在一切都好了。


0
在Visual Studio 2019中,切换和构建ReleaseDebug模式将其带回。

x:Class不同步

我注意到的另一件事是,在用户控件的编辑器文件中,x:Class =“...”排在另一个命名空间之前。

通过将x:Class作为控件的第一个命名空间,恢复了智能感知功能。


0

在我的情况下,解决 Xamarin XAML 文件的 IntelliSense 问题与 NuGet 包引用有关,我认为特别是 Xamarin.Forms 包。如果您的包上有黄色警告符号,则必须按照以下步骤进行:

  • 确保它能够无错误地构建

  • 通过 msbuild /restore [path to the specific project] 进行传递

  • 在您的解决方案中通过 .\nuget restore 进行传递

  • 关闭并重新打开您的解决方案

  • 右键单击相关的 XAML 文件 > 打开方式... > 确保将“XAML 设计器”或“Xamarin.Forms 预览器”设置为 XAML 文件的默认选项

现在您应该拥有 IntelliSense。

在我的情况下,这使得黄色警告消失,然后 XAML IntelliSense 再次在 Xamarin.Forms 文件上工作。


0

尝试构建项目并部署项目。在某些 dll 或某些 C# 代码中可能会出现错误。尝试修复您的 C# 代码中的所有错误,然后 dll 错误将自动修复。现在,XAML 中应该可以使用代码完成和 Intellisense。如果不行,请再次清理构建解决方案。如果没有遇到错误,则 XAML 代码完成和 Intellisense 将正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接