GridLength 結構
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示明確支援 StarAuto 重設大小之控制邏輯的度量。
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
- 屬性
範例
此範例示範如何在 XAML 中設定方格數據行寬度,無論是作為資源,還是直接設定為 Width
屬性值。
<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 設計工具中產生此輸出:
以下是如何在程式代碼中設定相同的值。 前兩個網格線長度相等,但第一個網格線長度會使用簡化的建構函式。
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);
備註
ColumnDefinition 和 RowDefinition 等類型, 針對某些屬性使用 GridLength
值(ColumnDefinition.Width 和 RowDefinition.Height)。 這些屬性值可用來支援配置容器中可用空間的變數分佈,例如 Grid(以及 VariableSizedWrapGrid等衍生類型的 Grid
)。
GridLength
可以描述三種調整模式之一:
- 固定寬度。
- 加權分佈(星形重設大小)。
- 自動 重設大小模式。
GridLength
值通常會在 XAML 屬性語法中宣告。 在 XAML 中,加權分佈是使用 「*」 符號來宣告,前面是宣告要用於該 GridLength
之加權因數的數位。 加權分配選項也稱為 星形重設大小。
GridLength
的屬性值,您必須使用其中一個建構函式建立新的值,並取代先前的值。
星形重設大小
星形重設大小是一種慣例,其中 GridLength
具有指定加權因數與其他 GridLength
值的數位值。 任何 GridLength
使用星號重設大小的值會分割可用空間、考慮加權因數,並在套用任何固定寬度之後進行評估。 如果沒有任何星形重設大小有加權因素,則高度或寬度會平均除以其中。 默認加權因數為 1。
下表提供星形重設大小結果的一些範例。 在這些範例中,假設父 Grid 的固定寬度為 600,而且有三個數據行。
欄 0 | 欄 1 | 欄 2 | 結果 |
---|---|---|---|
100 | 100 | * | 100,100,400 |
100 | * | * | 100,250,250 |
100 | * | 4* | 100,100,400 |
在程序代碼中,星號重設大小相當於 IsStar 為 true
的 GridLength
,GridUnitTypeStar,而 Value 是套用的加權因數。
允許非整數加權因數;例如,“.5*”。
自動重設大小
自動重設大小會根據數據行或數據列內的內容大小平均分散空間。 自動重設大小的確切邏輯是由控件或類別使用 GridLength
值實作。 類別通常是 Grid,因為它會解譯其 RowDefinition,並 ColumnDefinition 元件。
XAML 語法注意事項
雖然您可以將 GridLength
指定為物件專案,但是您無法指定個別的值,例如 Value
,做為該物件元素的屬性。 XAML 剖析器不支援為此結構設定 XAML 屬性值。 相反地,您必須將值指定為 GridLength
內的初始化文字。 如需 XAML 初始化文字的詳細資訊,請參閱
GridLength 的投影和成員
如果您使用 C#,則 GridLength 有可用的非數據成員,而且其數據成員會公開為唯讀屬性,而不是字段。 請參閱 .NET API 瀏覽器中的 GridLength。
如果您是使用 C++/WinRT 或 Windows 執行時間C++範本庫 (WRL)進行程式設計,則只有數據成員欄位會以 GridLength
的成員的形式存在,而且您無法使用 .NET 投影的公用程式方法或屬性。 C++程式代碼可以存取存在於 GridLengthHelper 類別上的類似公用程式方法。
下表顯示 .NET 和 C++中可用的對等屬性和方法。
欄位
GridUnitType |
GridUnitType 列舉的值,可限定如何將 |
Value |
此 GridLength 的量值,這不一定是圖元量值。 |
適用於
另請參閱
- Grid
- ColumnDefinition
- RowDefinition
- Width
- Height
- GridUnitType
- 使用 XAML
版面配置