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 explizit Star- (*) Größenanpassung und Auto- Größenanpassung 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 Platzes in Layoutcontainern wie Grid (und auch abgeleitete Typen von Grid
wie VariableSizedWrapGrid) zu unterstützen.
Ein 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 dieses GridLength
verwendet werden soll. Die Gewichtungsverteilungsoption wird auch als Sterngrößebezeichnet.
Die Von einem GridLength
Value und GridUnitType- gespeicherten Datenwerte sind schreibgeschützt. Wenn Sie den Wert einer Eigenschaft ändern möchten, die zur Laufzeit eine GridLength
verwendet, 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
einen Zahlenwert aufweist, der 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 fester 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 Grid eine feste Breite von 600 aufweist und dass drei Spalten vorhanden sind.
Spalte 0 | Spalte 1 | Spalte 2 | Ergebnis |
---|---|---|---|
100 | 100 | * | 100,100,400 |
100 | * | * | 100,250,250 |
100 | * | 4* | 100,100,400 |
Im Code entspricht eine Sterngröße einem GridLength
, bei dem IsStar-true
ist, GridUnitType-Star-ist und Wert- der gewichtete Faktor angewendet wird.
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 RowDefinition- und ColumnDefinition-komponenten interpretiert.
Hinweise zur XAML-Syntax
Obwohl Sie eine GridLength
als Objektelement angeben können, können Sie die einzelnen Werte, z. B. Value
, nicht als Attribute dieses Objektelements 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
angeben. Weitere Informationen zum XAML-Initialisierungstext finden Sie in XAML-Syntaxhandbuch.
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 GridLength
vorhanden, 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
GridUnitType |
Ein Wert der GridUnitType- Enumeration, die die Interpretation |
Value |
Das Measure für dieses GridLength-Maß, das nicht unbedingt ein Pixelmaß ist. |