2011-08-05 41 views
90

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

<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> 
+0

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

答えて

137

あなたが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/3を取得します。

 
First column width = 40/(40 + 314)*354 = 40 
Second coulmn width = 314/(40 + 314)*354 = 314 

星幅が最もよい使用されます。グリッドの幅は354であり、2つの列の割合は、次の列の幅を取得し40と314ある特定の場合には


グリッドの幅が固定されていない場合。グリッドのサイズを変更すると、列は星の幅で指定されているように比例して拡大縮小されます。あなたの場合、グリッドの幅は固定されているので、固定幅の列を簡単に使用することもできます。

したい場合は2番目の列が最初と3列目の二重の幅でレイアウトを使用すると、この定義を必要とする最初の幅のトリプルです:

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*"/> 
    <ColumnDefinition Width="2*"/> 
    <ColumnDefinition Width="3*"/> 
</Grid.ColumnDefinitions> 

グリッドの幅の合計の場合300の場合は列の幅が50,100,150になります。グリッドの幅が600の場合は、列の幅は100,200,300となります。

2

他星幅カラムへの0.07の比は、 - 別のColomnDefinitionが0.14の幅を有する場合、すなわち、その列には、そのすべてについて配給

1

これは、比を用いてカラムのサイズを作成=二重幅です。 <ColumnDefinition Width="0.03*"/>のような別の定義がある場合、最初の列はスペースの70%を占め、2番目の列は30%を占めます。

0

[..]使用可能なスペースの重み付けされた割合として表される値。