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
- Атрибуты
Примеры
В этом примере показано, как задать ширину столбцов сетки в 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). Эти значения свойств используются для поддержки распределения доступного пространства в контейнерах макетов, таких как сетки
GridLength может описать один из трех режимов для изменения размера:
- Фиксированная ширина.
- Взвешемое распределение (размер звезды).
- Режим автоматического размера
.
GridLength значения обычно объявляются в синтаксисе атрибута XAML. В XAML взвешемое распределение объявляется с помощью символа "*", предшествующего числу, которое объявляет коэффициент весового значения, используемого для этого GridLength. Параметр взвешированного распределения также известен как размер звезды.
Значения данных, удерживаемые значения GridLength во время выполнения, необходимо создать новое значение с помощью одного из конструкторов и заменить предыдущее значение.
Размер звезды
Размер звезды — это соглашение, в котором GridLength имеет числовое значение, указывающее взвешанный фактор и другие значения GridLength. Любые GridLength значения, использующие размер звезды, разделяют доступное пространство, учитывая факторы весового значения и оценивая после применения каких-либо фиксированных ширин. Если ни один из размеров звезд не имеет весовых факторов, высота или ширина делится одинаково между ними. Коэффициент весового значения по умолчанию равен 1.
В этой таблице приведены некоторые примеры результатов изменения размера звезд. В этих примерах предположим, что родительский сетки имеет фиксированную ширину 600, а также три столбца.
| Столбец 0 | Столбец 1 | Столбец 2 | Результат |
|---|---|---|---|
| 100 | 100 | * | 100,100,400 |
| 100 | * | * | 100,250,250 |
| 100 | * | 4* | 100,100,400 |
В коде размер звезд эквивалентен GridLength, где trueIsStar , GridUnitTypeStar, а значение является взвешанным фактором.
Допустимы не целочисленные факторы весовых значений; например, ".5*".
Автоматическое изменение размера
Автоматическое изменение размера распределяет пространство равномерно на основе размера содержимого, который находится в столбце или строке. Точную логику автоматического изменения размера реализует элемент управления или класс с помощью значений GridLength. Как правило, этот класс Grid, так как он интерпретирует его RowDefinition и компоненты ColumnDefinition.
Заметки о синтаксисе XAML
Хотя можно указать GridLength в качестве элемента объекта, нельзя указать отдельные значения, например Value, в качестве атрибутов этого элемента объекта. Средство синтаксического анализа XAML не поддерживает настройку значений атрибутов XAML для этой структуры. Вместо этого необходимо указать значения в виде текста инициализации в GridLength. Дополнительные сведения о тексте инициализации XAML см. в руководстве по синтаксису XAML .
Проекция и члены GridLength
Если вы используете C#, GridLength имеет доступные не данные, а его члены данных предоставляются как свойства только для чтения, а не поля. См. GridLength в браузере API .NET.
Если вы программируются с помощью C++/WinRT или библиотеки шаблонов среды выполнения Windows C++ (WRL), то только поля элементов данных существуют как члены GridLength, и нельзя использовать служебные методы или свойства проекции .NET. Код C++ может получить доступ к аналогичным методам служебной программы, существующим в классе GridLengthHelper.
В этой таблице показаны эквивалентные свойства и методы, доступные в .NET и C++.
Поля
| GridUnitType |
Значение перечисления GridUnitType, которое определяет, как |
| Value |
Мера для этого GridLength, которая не обязательно является мерой пикселя. |
Применяется к
См. также раздел
- Grid
- ColumnDefinition
- RowDefinition
- Width
- Height
- GridUnitType
- макеты с XAML