如何在 Visual Studio 中自动格式化 XAML 代码?

Posted

技术标签:

【中文标题】如何在 Visual Studio 中自动格式化 XAML 代码?【英文标题】:How to automatically format XAML code in Visual Studio? 【发布时间】:2018-02-19 01:56:57 【问题描述】:

这里:

https://social.msdn.microsoft.com/Forums/de-DE/b77c7529-298f-4b9a-874a-f94f699986ac/automatically-formatting-xaml-code?forum=vswpfdesigner

...据说可以使用“Ctrl+K+D”...但是没有用。

我也试过“shift + alt + F”,这里建议:

How do you format code in Visual Studio Code (VSCode)

...它也没有用。

所以我的问题是:

【问题讨论】:

此问题已在此处记录:github.com/dotnet/roslyn/issues/16899 建议使用 VS 反馈工具报告问题。我不知道那篇文章的 OP 是否这样做了,但我有。 【参考方案1】:

可能您的格式选项错误,请转到:工具 -> 选项 -> 文本编辑器 -> XAML -> 格式 -> 间距,然后在“属性间距”部分单击“将每个属性放在单独的位置行”,然后再次尝试“Ctrl+K+D”。

【讨论】:

哇,这是一个了不起的提示。我不明白为什么这不是默认设置。 (至少它不适合我)。【参考方案2】:

我会查看 XAML Styler,这是一个 Visual Studio 扩展,可帮助格式化您的 XAML 源代码(完全公开,我是该项目的所有者之一)。

编辑:忘了提到 Visual Studio 本身并没有非常丰富的 XAML 格式化功能。

【讨论】:

【参考方案3】:

Visual Studio for Mac 机器中 XAML 格式化的快捷键:Ctrl+I

【讨论】:

【参考方案4】:

如果你们还不知道怎么...

它叫做“格式化文档”,你可以在菜单中找到它:

编辑 => 高级 => 格式化文档

还有一个捷径:

Ctrl+E 然后 Ctrl+D

这适用于大多数文档,包括 XAML。

编辑:发表这篇文章时,我使用的是 VS 2017

【讨论】:

当我尝试它时,这在 XAML VS2015 中没有任何作用。在我的菜单中,它显示为原始问题中提到的 ^K^D,并指出它不起作用。 也为我工作。 在 VS 2019 中,此菜单选项在 xaml 文件中时不存在。 :( 这在 VS2019 中现在可以工作,至少,如果不是以前的话。【参考方案5】:

我使用Xaml Formatter。对我来说效果很好。您只需将使用 Xaml Formatter 的代码格式化分配给 Xaml 文件中的 Ctrl+K Ctrl+D 快捷方式,因为默认情况下不会这样做(它在工具菜单中创建格式化 Xaml 选项)。

如果您正在开发大量 Xaml 代码,Inline Color Picker 也是一个非常简单但非常有用的扩展。

【讨论】:

【参考方案6】:

尝试使用 VS Code 的“XML 工具”,快捷键是 Alt + Shift + F

【讨论】:

【参考方案7】:

对于任何正在寻找“在属性之间插入一个空格”和“将每个属性放在单独的行上”的组合的人,我找到了这个解决方案:

工具 -> 选项 -> 文本编辑器 -> XAML -> 格式 -> 常规 -> 标记包装

并勾选“包装超过指定长度的标签”。

不言自明,一个 kann 在以下输入字段中调整长度。

【讨论】:

【参考方案8】:

如果您有 JetBrains 许可证,请使用 Visual Studio 的 ReSharper 扩展。如果你是学生,你可以免费获得。 Visual Studio 感觉就像一个漂亮的 Jetbrains IDE。您可以选择是否要将快捷方式映射到 Visual Studio 或 Intellij 背景。

迄今为止我为 Visual Studio 找到的最佳工具。它还带来了更酷的东西,比如在你的项目中搜索函数/对象调用。

【讨论】:

这不能回答问题。如何使用 Resharper 格式化 XAML? 从我在 ReSharper 中看到的情况来看,XAML 的格式化选项并不多,更不用说像 C# 那样的间距和格式化 XAML 文档了。

以上是关于如何在 Visual Studio 中自动格式化 XAML 代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 中关闭 App.config 文件自动排列格式

如何禁用 Visual Studio 的 SQL 自动格式化和类设计器功能?

如何使 Visual Studio 自动格式化程序尊重 JSDoc 注释?

在 Visual Studio 代码中格式化液体(Shopify)代码

如何禁用我的 HTML 类的 Visual Studio Code 自动修剪空白?

visual studio2017社区版如何空格操作?