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
, где true
IsStar , 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