GridLength 構造体

定義

Star (*) のサイズ設定と自動 サイズ変更を明示的にサポートするコントロール ロジックの測定値 表します。

public value class GridLength
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct GridLength
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct GridLength
Public Structure GridLength
<object property="doubleValue"/>
- or -
<object property="starSizing"/>
-or-
<object property="Auto"/>
継承
GridLength
属性

この例では、リソースとして、または Width プロパティ値として直接、XAML でグリッド列の幅を設定する方法を示します。

<Grid>
    <Grid.Resources>
        <GridLength x:Key="gridLength200">200</GridLength>
        <GridLength x:Key="gridLength2star">2*</GridLength>
    </Grid.Resources>
    <Grid.ColumnDefinitions>
        <ColumnDefinition x:Name="gridColumn0" Width="{StaticResource gridLength200}"/>
        <ColumnDefinition x:Name="gridColumn1" Width="200"/>
        <ColumnDefinition x:Name="gridColumn2" Width="Auto"/>
        <ColumnDefinition x:Name="gridColumn3" Width="3*"/>
        <ColumnDefinition x:Name="gridColumn4" Width="{StaticResource gridLength2star}"/>
        <ColumnDefinition x:Name="gridColumn5" Width="*"/>
    </Grid.ColumnDefinitions>
    <Border Background="Red" Grid.Column="0"/>
    <Border Background="Orange" Grid.Column="1"/>
    <Border Background="Yellow" Grid.Column="2" Width="100"/>
    <Border Background="Green" Grid.Column="3"/>
    <Border Background="Blue" Grid.Column="4"/>
    <Border Background="Violet" Grid.Column="5"/>
</Grid>

XAML は、Visual Studio デザイナーで次の出力を生成します。

gridlength XAML の出力のレンダリング

コードで同じ値を設定する方法を次に示します。 最初の 2 つのグリッドの長さは同じですが、最初のグリッドの長さは簡略化されたコンストラクターを使用します。

gridColumn0.Width = new GridLength(200);
gridColumn1.Width = new GridLength(200, GridUnitType.Pixel);
gridColumn2.Width = new GridLength(0, GridUnitType.Auto);
gridColumn3.Width = new GridLength(3, GridUnitType.Star);
gridColumn4.Width = new GridLength(2, GridUnitType.Star);
gridColumn5.Width = new GridLength(1, GridUnitType.Star);

注釈

ColumnDefinitionRowDefinition などの型、一部のプロパティ (ColumnDefinition.Width および RowDefinition.Height) に GridLength 値を使用します。 これらのプロパティ値は、Grid などのレイアウト コンテナー内の使用可能な領域の変数分布をサポートするために使用されます (また、VariableSizedWrapGridなどの Grid の派生型もサポートします)。

GridLength では、サイズ変更の 3 つのモードのいずれかを記述できます。

  • 固定幅。
  • 加重分布 (星のサイズ変更)。
  • 自動 サイズ変更モード。

GridLength 値は、通常、XAML 属性構文で宣言されます。 XAML では、重み付けされた分布は、その GridLengthに使用する重み係数を宣言する数値の前に "*" 記号を使用して宣言されます。 重み付け分布オプションは、スター サイズ設定とも呼ばれます。

GridLength ValueGridUnitType によって保持されるデータ値は、どちらも読み取り専用です。 実行時に GridLength を受け取るプロパティの値を変更する場合は、いずれかのコンストラクターを使用して新しい値を作成し、前の値を置き換える必要があります。

星のサイズ設定

スター サイズ設定は、GridLength に加重係数と他の GridLength 値を指定する数値を持つ規則です。 スター サイズ設定を使用する GridLength 値は、使用可能な領域を分割し、重み係数を考慮して、固定幅を適用した後の評価を行います。 重み係数を持つ星のサイズ設定がない場合、高さまたは幅はそれらの間で均等に分割されます。 既定の重み係数は 1 です。

次の表に、スター サイズ設定の結果の例をいくつか示します。 これらの例では、親 Grid の幅が 600 で、3 つの列があるとします。

列 0 列 1 列 2 結果
100 100 * 100,100,400
100 * * 100,250,250
100 * 4* 100,100,400

コードでは、スターのサイズ設定は、IsStarGridUnitType がスターValue が加重係数である と同じです。

整数以外の重み係数を使用できます。たとえば、".5*" などです。

自動サイズ設定

自動サイズ設定では、列または行内のコンテンツのサイズに基づいてスペースが均等に分散されます。 自動サイズ設定の正確なロジックは、GridLength 値を使用してコントロールまたはクラスによって実装されます。 通常、そのクラスは、RowDefinition と ColumnDefinition コンポーネントを解釈 、Gridされます。

XAML 構文に関する注意事項

GridLength はオブジェクト要素として指定できますが、Valueなどの個々の値をそのオブジェクト要素の属性として指定することはできません。 XAML パーサーでは、この構造体の XAML 属性値の設定はサポートされていません。 代わりに、GridLength内で初期化テキストとして値を指定する必要があります。 XAML 初期化テキストの詳細については、XAML 構文ガイド を参照してください。

GridLength のプロジェクションとメンバー

C# を使用している場合、GridLength には非データ メンバーが使用でき、そのデータ メンバーはフィールドではなく読み取り専用プロパティとして公開されます。 .NET API ブラウザー GridLength を参照してください。

C++/WinRT または Windows ランタイム C++ テンプレート ライブラリ (WRL)を使用してプログラミングする場合、データ メンバー フィールドのみが GridLengthのメンバーとして存在し、.NET プロジェクションのユーティリティ メソッドまたはプロパティを使用することはできません。 C++ コードは、GridLengthHelper クラスに存在する同様のユーティリティ メソッドにアクセスできます。

次の表は、.NET および C++ で使用できる同等のプロパティとメソッドを示しています。

.NET (GridLength) C++ (GridLengthHelper)
GridLength(Double) FromPixels(Double)
GridLength(Double, GridUnitType) FromValueAndType(Double, GridUnitType)
自動 の 自動 の
Equals Equals(GridLength, GridLength)
IsAbsolute の GetIsAbsolute(GridLength)
IsAuto GetIsAuto(GridLength)
IsStar GetIsStar(GridLength)

フィールド

GridUnitType

Value がメジャーとして解釈される方法を修飾する GridUnitType 列挙体の値。

Value

この GridLength のメジャー。これは必ずしもピクセル メジャーではありません。

適用対象

こちらもご覧ください