Новое в версии 4.7 - Ищете способ указать RowDefinitions = "1 *, Auto, 25, 14, 20" в C# - PullRequest
3 голосов
/ 20 июня 2020

Учитывая это определение строки;

<Grid RowDefinitions="1*, Auto, 25, 14, 20">
    ...
</Grid>

Кто-нибудь знает, как я могу указать это в C# теперь, когда это функция Xamarin.Forms 4.7

1 Ответ

3 голосов
/ 20 июня 2020

К сожалению, нет. Согласно документации Grid для Упростить определения строк и столбцов :

В XAML можно указать характеристики строк и столбцов сетки с использованием упрощенного синтаксиса, который позволяет избежать необходимости определять объекты RowDefinition и ColumnDefinition для каждой строки и столбца.

Важная часть - первые 2 слова - в XAML.

Я немного откопал глубже в это, и оказалось, что эта функция действительно предназначена только для XAML, по крайней мере, на данный момент. Из официального pull request мы видим, что эта функциональность реализуется через пару TypeConverters . Из commit , реализующего новый поток, мы можем заглянуть в ColumnDefinitionCollectionTypeConverter.cs и увидеть в пятой строке, что конвертер предназначен только для XAML:

[Xaml.TypeConversion(typeof(ColumnDefinitionCollection))]

Подводя итог - нет, пока эта функция доступна только для XAML. Но из-за приближающегося MAUI мы видим, что все больше и больше функций поступают в виде расширений C#, поэтому я предполагаю, что появление этого и C# - лишь вопрос времени. .

Подробнее про TypeConverters в XAML можно узнать здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...