2011-09-14 22 views
9

*はXAMLで何を意味しますか。私は幅400のグリッドを持っています。グリッドを3列に分割しました。 * .4は何を意味しますか?私はそれが利用可能なスペースの40%だと思った。最初の2列はそれぞれ40%ずつ、残りは3列目となります。 のように見えますが、3番目の列は60%、最初の2つはそれぞれ20%ずつ増加しています。 これはどのように機能しますか?XAMLで*の意味

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width=".4*"/> 
     <ColumnDefinition Width=".4*"/> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
</Grid> 

enter image description here

答えて

12

基本的には、デフォルトではので、あなたが上記の持っていることは事実である、 "1 *" である:

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="0.4*" /> 
    <ColumnDefinition Width="0.4*" /> 
    <ColumnDefinition Width="1.0*" /> 
</Grid.ColumnDefinitions> 

スターのグリッド間隔(GridUnitType.Star)は比例スペースを配布しています。あなたのケースでは、合計が1.8(1.0 + 0.4 + 0.4)なので、最初の2つの列はそれぞれ22.2%(0.4/1.8)の幅に割り当てられます。

あなたが使用することができ、あなたが望む結果を得るには:

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="0.4*" /> 
    <ColumnDefinition Width="0.4*" /> 
    <ColumnDefinition Width="0.2*" /> 
</Grid.ColumnDefinitions> 

これは、1.0の合計を設定し、そのそれぞれが割合になります。合計の割合が合計(100)によって分割されているので

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="40*" /> 
    <ColumnDefinition Width="40*" /> 
    <ColumnDefinition Width="20*" /> 
</Grid.ColumnDefinitions> 

今、依然として40%、40%、20%を与える:これはやっとして全く同じ結果を与えること

注。