2014-08-28 24 views
2

這是困擾我一段時間的事情,我不確定是否可以關閉或不關閉某些設置,但每當我在VS 2010中複製並粘貼xaml中的內容時,它總是自動縮進行我在上,往往是因爲某種原因之後的那個人。例如,假設我有一個XAML代碼行:在xaml自動縮進中複製粘貼事物?

       <TextBlock VerticalAlignment="Top" Foreground="Red" FontSize="11" Width="5" 
            Text="*" Visibility="{Binding Path=ShowInvalidFlag,UpdateSourceTrigger=PropertyChanged}" /> 

           <TextBlock Width="Auto" Background="Transparent" Text="{Binding Path=QuestionValue}" /> 

,然後我意識到,第一TextBlock需要Margin定義,我複製Margin="0,1,0,0"從另一個控制同一XAML文檔中和的聲明中粘貼上述TextBlock它自動縮進和我結束了這一點:

        <TextBlock VerticalAlignment="Top" Margin="0,1,0,0" Foreground="Red" FontSize="11" Width="5" 
            Text="*" Visibility="{Binding Path=ShowInvalidFlag,UpdateSourceTrigger=PropertyChanged}" /> 

           <TextBlock Width="Auto" Background="Transparent" Text="{Binding Path=QuestionValue}" /> 

爲什麼這樣做呢?它甚至不需要從同一個xaml文件甚至xaml代碼中複製(我只是試圖從文本文件中複製隨機文本並將其粘貼到控件中,並且它仍然是自動縮進的)。每次我在xaml中粘貼某些東西時,都會感到非常沮喪,因此我需要重新調整縮進。

+3

如果您在VS中的選項中搜索,您應該能夠在'Text Editor'和'Xaml'下找到'Indenting'選項。默認情況下,它被設置爲「聰明」,並不總是像你想要的那樣聰明。玩一下,看看它是否更適合你。 – 2014-08-28 15:57:41

+0

@MattBurland你的評論應該只是一個答案。至於「智能」縮進,我認爲它與下一個父節點有關,其中就像在你的示例中一樣,如果有一個網格是父節點,那麼可能會注意到它的間距是來自該網格標籤的一個選項卡。 – 2014-08-28 18:30:00

回答

1

從註釋轉換:

如果你在VS的選項搜索,你應該能夠在文本編輯器和XAML縮進,您可以查找。默認情況下,它被設置爲「聰明」,並不總是像你想要的那樣聰明。玩一下,看看它是否更適合你。複製/粘貼似乎特別容易使其跳動。此外,您也可以始終如此以「編輯」 - >「高級」,然後選擇「格式化文檔」或「格式選擇」,以強制Visual Studio在格式化時再次傳遞,這可能會修復或使更糟的是,你的問題。

我認爲問題在於它試圖在速度和正確性之間進行優化。當你粘貼一些東西時,它可能不會考慮粘貼到哪裏的整個上下文,而只是看看直接父母和/或兄弟姐妹,當你粘貼大量東西時,這是一個問題。