XAML ColumnDefinitionの*(アスタリスク)の意味は何ですか?


106

以下の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>

2番目の列の幅が最初の2倍で、3番目の列の幅が最初の3倍である場合、どのようにAstrikを使用できますか
Shashank

回答:


168

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になります。


3

他の星型幅の列に対する0.07の比率-つまり、別のColomnDefinitionの幅が0.14の場合、その列は幅の2倍になります=配給についてのすべて


1

比率を使用して列サイズを作成します。<ColumnDefinition Width="0.03*"/>最初の列のような別の定義がある場合、スペースの70%を占め、2番目の列は30%を占めます。


0

[..]使用可能なスペースの加重比率として表される値。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.