如果網格中有TextBlock,設置其寬度和高度的最佳方式是什麼(性能明智)?設置TextBlock與網格的寬度
在TextBlock的屬性中設置它們會比將其設置爲Grid的屬性更好嗎?
基本上是我問的是下列哪一個更好:
<Grid Width="200" Height="200">
<TextBlock />
</Grid>
VS
<Grid>
<TextBlock Width="200" Height="200"/>
</Grid>
如果網格中有TextBlock,設置其寬度和高度的最佳方式是什麼(性能明智)?設置TextBlock與網格的寬度
在TextBlock的屬性中設置它們會比將其設置爲Grid的屬性更好嗎?
基本上是我問的是下列哪一個更好:
<Grid Width="200" Height="200">
<TextBlock />
</Grid>
VS
<Grid>
<TextBlock Width="200" Height="200"/>
</Grid>
<Grid Width="200" Height="200">
<TextBlock />
</Grid>
單純使用網格來約束TextBox並不是真正的設置TextBox寬度的好方法。網格更適合佈置多個控件。然而,這是完全可以接受的:
<Grid Width="200" Height="200">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" HorizontalAlignment="Stretch" Margin="5,0" />
</Grid>
這跟@Ahmed建議的一樣。
通常對於XAML佈局,建議使用比例佈局而不是固定大小,以便您的UI可以通過任何代碼進行最小程度的忽略而正確調整大小。這意味着讓父元素儘可能地指定尺寸是很好的,只有在必要時才使用固定尺寸。 (設置MinWidth/MaxWidth /等很好,只是儘量避免明確地設置寬度在可能的情況下,同樣適用於高度屬性)。
〜單純使用Grid來約束TextBox並不是真正的設置TextBox寬度的好方法。我明白,網格更多的是佈置兒童元素,但對於性能方面,最好是在網格中設置寬度還是兒童本身? – dnr3 2011-06-07 03:19:12
在MSDN上的Layout System文章有對性能的一小部分,但有還有關於optimizing performance of the layout and design的專門文章。也許在那裏有幫助。
在我看來,這個文檔雖然沒有對這個問題提出任何要求,但它可能沒有關係,或者差別可以忽略不計。
我真的不明白你在問什麼!
但我真的很喜歡我的設置網格向被拉伸爲窗口和寬度&高度設置我文本框爲自動或NaN ,,然後定義特殊的利潤率&對準我文本框
我沒有任何統計數據支持這一點,但由於WPF的渲染/佈局引擎通過首先測量所有事物的子元素來工作,人們會假設如果您手動定義子元素的大小,它會有一個邊際影響。
在這種情況下,如果你只是在包裝一個TextBlock元素,那麼最好使用類似<Border>
的東西。如果有多個元素,請參閱是否可以使用<StackPanel>
。
你可以詳細說明你的意思嗎*設置爲網格屬性*? – slugster 2011-06-07 01:23:21
我添加了一些代碼來詳細說明我的問題 – dnr3 2011-06-07 02:40:56