以下のXAMLの*(アスタリスク)の意味は何ですか?
<ColumnDefinition Width="0.07*"/>
<Grid Height="100" HorizontalAlignment="Left"
Margin="102,134,0,0"
Name="grid1" VerticalAlignment="Top"
Width="354">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="314*" />
</Grid.ColumnDefinitions>
</Grid>
WPFグリッドで列を定義するとき、幅を3つの可能な値のいずれかに設定できます。
Auto
–子に合わせて列が必要な幅になるか、または*
(スター)使用可能な残りのスペースを占有します*
の前には数字が付きます(数字が指定されていない場合のデフォルトは1です)。使用可能なスペースは、プレフィックス番号に比例してスター付きの列に分割されます。
この定義がある場合
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
最初の列は使用可能な合計スペースの7%を取得し、2番目の列は93%を取得します。一方、この定義がある場合:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
最初の列は使用可能なスペースの1/3を取得し、2番目の列は2/3を取得します。
グリッドの幅が354で、2つの列の比率が40と314である特定の場合、次の列幅が得られます。
最初の列幅= 40 /(40 + 314)* 354 = 40 2番目の列幅= 314 /(40 + 314)* 354 = 314
星の幅は、グリッドの幅が固定されていない場合に最適です。グリッドのサイズが変更されると、列は星の幅で指定されたとおりに比例して拡大縮小されます。あなたの場合、グリッドの幅は固定されており、固定幅の列を簡単に使用できます。
2番目の列が最初の列の幅の2倍で、3番目の列が最初の列の幅の3倍であるレイアウトが必要な場合、この定義が必要です。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
グリッドの合計幅が300の場合、列幅は50、100、および150になります。グリッドの合計幅が600の場合、列幅は100、200、および300になります。以下同様です。
他のスター幅の列に対する0.07の比率-つまり、別のColomnDefinitionの幅が0.14の場合、その列は幅の2倍=配給量について
比率を使用して列サイズを作成します。 <ColumnDefinition Width="0.03*"/>
のような別の定義がある場合、最初の列はスペースの70%を占有し、2番目の列は30%を占有します。
[..]使用可能なスペースの重み付き割合として表される値。