GridLength Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Messung für die Steuerungslogik dar, die die Größenanpassung von Star (*) und die automatische Größenanpassung explizit unterstützt.
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"/>
- Vererbung
-
GridLength
- Attribute
Beispiele
In diesem Beispiel wird gezeigt, wie Rasterspaltenbreiten in XAML entweder als Ressource oder direkt als Width Eigenschaftswert festgelegt werden.
<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>
Der XAML-Code erzeugt diese Ausgabe im Visual Studio-Designer:
Hier erfahren Sie, wie Sie die gleichen Werte im Code festlegen. Die ersten beiden Rasterlängen sind gleichwertig, aber im ersten wird der vereinfachte Konstruktor verwendet.
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);
Hinweise
Typen wie ColumnDefinition und RowDefinition verwenden GridLength Werte für einige ihrer Eigenschaften (ColumnDefinition.Width und RowDefinition.Height). Diese Eigenschaftswerte werden verwendet, um die variable Verteilung des verfügbaren Speicherplatzes in Layoutcontainern wie Grid (und auch abgeleitete Typen wie GridVariableSizedWrapGrid) zu unterstützen.
Eine GridLength kann einen von drei Modi für die Größenanpassung beschreiben:
- Eine feste Breite.
- Eine gewichtete Verteilung (Sterngröße).
- Ein Automatischer Größenanpassungsmodus.
GridLength Werte werden in der Regel in der XAML-Attributsyntax deklariert. In XAML wird die gewichtete Verteilung mit einem "*"-Symbol deklariert, dem eine Zahl vorangestellt wird, die den gewichtungsfaktor deklariert, der für dies GridLengthverwendet werden soll. Die Gewichtungsverteilungsoption wird auch als Sterngröße bezeichnet.
Die Von einem GridLengthValue - und GridUnitType-Objekt gehaltenen Datenwerte sind schreibgeschützt. Wenn Sie den Wert einer Eigenschaft ändern möchten, die zur Laufzeit einnimmt GridLength , müssen Sie einen neuen Wert mit einem der Konstruktoren erstellen und den vorherigen Wert ersetzen.
Sterngröße
Die Sterngröße ist eine Konvention, bei der ein GridLength Zahlenwert einen gewichteten Faktor im Vergleich zu anderen GridLength Werten angibt. Alle GridLength Werte, die die Größenanpassung von Stern verwenden, dividieren den verfügbaren Platz, wobei die Gewichtungsfaktoren und die Auswertung nach der Anwendung von festen Breiten erfolgt. Wenn keiner der Sterngrößen Gewichtungsfaktoren aufweist, wird die Höhe oder Breite gleichmäßig untereinander aufgeteilt. Der Standardgewichtungsfaktor ist 1.
Diese Tabelle enthält einige Beispiele für Ergebnisse der Größenanpassung von Sternen. Gehen Sie für diese Beispiele davon aus, dass das übergeordnete Raster eine feste Breite von 600 aufweist und dass drei Spalten vorhanden sind.
| Spalte 0 | Spalte 1 | Spalte 2 | Result |
|---|---|---|---|
| 100 | 100 | * | 100,100,400 |
| 100 | * | * | 100,250,250 |
| 100 | * | 4* | 100,100,400 |
Im Code entspricht eine Sterngröße einem GridLength Ort, an dem IsStar ist true, GridUnitTypeStar ist, und Value ist der gewichtete Faktor angewendet.
Nicht ganzzahlige Gewichtungsfaktoren sind zulässig; Beispiel: ".5*".
Automatische Größenanpassung
Die automatische Größenanpassung verteilt den Platz gleichmäßig basierend auf der Größe des Inhalts, der sich innerhalb einer Spalte oder Zeile befindet. Die genaue Logik für die automatische Größenanpassung wird vom Steuerelement oder der Klasse mithilfe der GridLength Werte implementiert. In der Regel ist diese Klasse "Grid", da sie die Komponenten "RowDefinition " und "ColumnDefinition " interpretiert.
Hinweise zur XAML-Syntax
Obwohl Sie ein GridLength Objektelement angeben können, können Sie die einzelnen Werte, z Value. B. Attribute dieses Objektelements, nicht angeben. Der XAML-Parser unterstützt das Festlegen von XAML-Attributwerten für diese Struktur nicht. Stattdessen müssen Sie die Werte als Initialisierungstext innerhalb der GridLength. Weitere Informationen zum XAML-Initialisierungstext finden Sie in der XAML-Syntaxanleitung.
Projektion und Elemente von GridLength
Wenn Sie C# verwenden, steht GridLength nicht-Datenmmber zur Verfügung, und die zugehörigen Datenmmber werden als schreibgeschützte Eigenschaften verfügbar gemacht, nicht als Felder. Siehe "GridLength" im .NET-API-Browser.
Wenn Sie mit C++/WinRT oder der Windows-Runtime C++-Vorlagenbibliothek (WRL) programmieren, sind nur die Datenmemberfelder als Member GridLengthvorhanden, und Sie können die Hilfsmethoden oder Eigenschaften der .NET Projektion nicht verwenden. C++-Code kann auf ähnliche Hilfsmethoden zugreifen, die in der GridLengthHelper-Klasse vorhanden sind.
Diese Tabelle enthält die entsprechenden Eigenschaften und Methoden, die in .NET und C++ verfügbar sind.
Felder
| Name | Beschreibung |
|---|---|
| GridUnitType |
Ein Wert der GridUnitType-Aufzählung , die die Interpretation als Measure angibt |
| Value |
Das Measure für dieses GridLength-Maß, das nicht unbedingt ein Pixelmaß ist. |