2009-07-22 78 views
59

我使用Height =「*」有點意味着最後一行的高度應該填充到網格的底部。在XAML Grid中RowDefinition Height =「10 *」是什麼意思?

但是「10 *」是什麼意思?

<Grid Name="mainGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="100" /> 
     <RowDefinition Height="40" /> 
     <RowDefinition Height="10*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="200" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
</Grid> 

回答

93

"*""1*"簡寫。這是一個比率,所以如果你有兩排,一個是"*",另一個是"10*",前者獲得1/11的可用空間,後者獲得空間的10/11。

在上例中,"10*"是不必要的 - "*"會更有意義,因爲只有一行使用基於比率的大小,所以任何比例將等於100%的可用空間。

+2

非常有幫助的答案。官方文檔的有限示例沒有明確聲明'*'來指示基於比率的間距。 – ford 2011-09-22 17:20:43

+0

@福建它,但你需要將版本更改爲silverlight [鏈接] http://msdn.microsoft.com/en-us/library/system.windows.controls.grid.rowdefinitions(v = vs.95)。 aspx – 2013-07-31 11:55:24

19

我發現下面的信息來自Christian Mosers是有幫助的,因爲Auto和其他單元格行或列上的固定尺寸會影響*尺寸的行爲。見http://wpftutorial.net/GridLayout.html


固定 邏輯單元的固定大小(1/96英寸)

自動 注意到在需要時由包含控制

儘可能多的空間(*) 佔用儘可能多的空間(填充所有自動和固定尺寸的色譜柱後),pro分成所有星級大小的柱子。所以3 */5 *表示與30 */50 *相同。請記住,如果根據網格的內容計算網格大小,則星形大小不起作用。

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="28" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="200" /> 
    </Grid.ColumnDefinitions> 
</Grid> 
-12

在XAML *用於百分比(%),從而10*意味着總格的10%。該行將使用10%的網格

+2

如果可能的話,我會投票解決此問題,以避免任何人看到此問題。 – GEEF 2016-04-19 20:51:42