VS2008 XAML代码格式化程序

时间:2010-02-10 09:15:44

标签: visual-studio-2008 xaml resharper code-formatting

在我的团队中,.xaml文件中的代码样式目前不是很一致。我们查看了Visual Studio自动格式化程序,使其将代码格式化为我们喜欢的内容。但是,对于一种选择,我们缺乏额外的条件。我正在谈论的选项可以在工具 - >下找到。选项 - >文字编辑器 - > XAML - >格式化。

我们希望每个属性都在一个单独的行上。最初,我们还想要新行上的第一个属性(在标记的开头下面),如下所示:

<MyFooBarButton
    Attrib1="a"
    Attrib2="b" />

但是我们很快意识到运行这些规则会使只设置一个属性的标签看起来很糟糕,特别是如果它们是嵌套的:

<MyFooBarButton
    Attrib1="a" />
    <NestedFoo
        Attrib="b" />
        <NestedFoo2
            Attrib="c" />

所以我们尝试将第一个属性放在与开始标记相同的行上。同时仍保留两个重要规则(每行一个属性,垂直对齐)。在这两种情况下看起来都不错:

<MyFooBarButton Attrib1="a"
                Attrib2="b" />

<MyFooBarButton Attrib1="a" />
    <NestedFoo Attrib="b" />
        <NestedFoo2 Attrib="c" />

现在的问题是Visual Studio似乎缺乏兼顾两者的条件。即:

  • 如果只设置了一个属性:将其保留在一行上。
  • 如果设置了多个属性:将第一个属性放在新行上,每行一个属性并垂直对齐。

Visual Studio 2008可以这样做吗?如果没有,ReSharper中的代码格式化程序可以做到吗(可能值得花费)吗?

2 个答案:

答案 0 :(得分:3)

尝试http://xamlstyler.codeplex.com/,如果一个元素只有2个或少于2个属性,这个xaml格式化程序不会将属性划分为不同的行,此格式化程序还能够对元素的属性进行排序。预定义规则,使您的标记外观更好。

答案 1 :(得分:2)

也许这些会对你有所帮助:

http://weblogs.asp.net/fmarguerie/archive/2008/06/07/xaml-markup-formatting-in-visual-studio.aspx

http://geekswithblogs.net/lbugnion/archive/2007/09/29/Cleaning-up-XAML-code-and-improving-parsing-time-with-Blend.aspx#lbu_note2

http://dimebrain.com/2008/05/automating-read.html

(最后两个链接在第一个链接的文本中提到)

编辑:我检查了ReSharper中的选项,我找不到任何仅用于XAML格式化的选项(有c#,vb.net和XML)

EDIT2:我检查了VS中的格式化选项,看起来确实是你需要的东西。在“间距”中,有一个选项“将每个属性放在一个单独的行上”,它有一个标题为“将第一个属性放在与开始标记相同的行上”的复选框。在我看来,它应该做你需要的。