2010-02-10 65 views
5

在我的團隊中,.xaml文件中的代碼風格目前不是非常一致。我們查看了Visual Studio自動格式化器,將代碼格式化爲我們喜歡的東西。但是,對於一個選項,我們缺少一個額外的條件。我在討論的選項可以在工具 - >選項 - >文本編輯器 - > XAML - >格式下找到。VS2008 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

也許這將幫助你:

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

EDIT(最後兩個鏈接下第一鏈接文字中提到):我檢查選項在ReSharper和我無法找到任何選項僅用於XAML格式(有一個爲c#,vb.net和XML)

EDIT2:我檢查了VS中的格式化選項,有什麼東西,似乎正是你所需要的。在「間距」中有選項「將每個屬性放置在單獨一行上」,並且其複選框的標題爲「在與開始標籤相同的行上放置第一個屬性」。在我看來,它應該做你需要的。

+0

關於「將每個屬性放在一個單獨的行上」,這就是我想要假設有多個屬性,否則不是。我試圖解釋我原來的問題中的差異。也許我應該修改它。 – Mizipzor 2010-03-05 10:26:36

+0

我提到的那個複選框呢?如果只有一個屬性,它應該將它放在與標記相同的行上,如果有更多的屬性,則應該將它們放在單獨的行中,因爲選項「將每個屬性放置在單獨的行上」。也許我不明白,但這些選項的說明建議根據您的需要進行工作。 – grapkulec 2010-03-05 12:53:54

+0

和@mizipzor,你提到的複選框完全符合OP的要求,儘管我只在VS2010測試過。 – 2010-11-27 17:56:02

3

嘗試http://xamlstyler.codeplex.com/,這個xaml格式化程序不會將屬性拆分成不同的行,如果一個元素只有2個或少於2個屬性,並且此格式化程序還能夠按照預定義的規則對元素的屬性進行排序,這使您的標記看起來更好。