所以在WPF XAML你可以寫這樣的事情:是什麼文本之外的文本框的文本和文本之間的差異
<TextBlock Text="Light"/>
但我看到一些人寫這樣的:
<TextBlock>Light</TextBlock>
有什麼區別嗎?爲什麼我們可以用兩種方式寫作?是否有任何性能提升?可移植性?
謝謝!
所以在WPF XAML你可以寫這樣的事情:是什麼文本之外的文本框的文本和文本之間的差異
<TextBlock Text="Light"/>
但我看到一些人寫這樣的:
<TextBlock>Light</TextBlock>
有什麼區別嗎?爲什麼我們可以用兩種方式寫作?是否有任何性能提升?可移植性?
謝謝!
爲什麼我們可以用兩種方式書寫?
它可以把內容的元素中,爲您能夠內聯添加到一個TextBlock:
<TextBlock>
<Run>Light</Run>
<LineBreak />
<Run FontWeight="Bold">Bold</Run>
</TextBlock>
不過,若你只添加一個字符串作爲TextBlock元素的內部文本( <TextBlock>Light</TextBlock>
),XAML解析器將簡單地將TextBlock的Text屬性設置爲該字符串,而不是創建Inline並將其添加到TextBlock的Inlines集合中。
因此,結果沒有區別,兩種語法都會將TextBlock的Text屬性設置爲Text。
是否有任何性能提升?
不,這只是兩種不同的做同樣事情的方法,即設置TextBlock的Text屬性。
視圖的XAML標記只是一個基於XML的長字符串,在構建應用程序時會被編譯到BAML中。 WPF運行時然後分析BAML標記並創建相應的UI元素並在運行應用程序時設置它們的屬性。如何在標記中設置TextBlock的Text屬性在運行時並不重要。
兩者都是相同的,如果你使用正常或靜態(哈特編碼)字符串像你的例子。第一個是完整的表格,第二個是剪切。否則,如果你想使用動態值,那麼通過綁定的第一個最好的方式。如果你想使用像'&'這樣的特殊字符,那麼第二個是最好的方法。
第一個選項是第二個選項的縮寫。如果您使用短文本(1-2個字),則使用第一個選項。這一個允許更好的可讀性。對於更長的文本,第二種選擇更適合。
我看到的最大區別是第一個選項允許你綁定到某個東西。您的文字可能來自不同的地方,例如另一個控件,查看模型等。