Формы Xamarin: каков правильный формат свойства OnIdiom высоты RowDefinition?

У меня есть 2 строки внутри сетки, так как первая строка имеет фиксированный размер. Я пытаюсь применитьOnIdiomособенность здесь. Пробовал, как показано ниже:

<Grid.RowDefinitions>
    <RowDefinition>
        <RowDefinition.Height>
            <OnIdiom x:TypeArguments="x:Double">
                <OnIdiom.Phone>30</OnIdiom.Phone>
                <OnIdiom.Tablet>60</OnIdiom.Tablet>
            </OnIdiom>
        </RowDefinition.Height>
    </RowDefinition>
    <RowDefinition Height="auto"/>
</Grid.RowDefinitions>

Но в списке ошибок появляется следующая ошибка:

No property, bindable property, or event found for 'Height', or mismatching type between value and property.

Каков правильный формат свойства OnIdiom высоты RowDefinition?

2 ответа

Решение

Вы можете использовать OnIdiom расширение разметки:

<RowDefinition Height="{OnIdiom Phone=30, Tablet=60}"/>
<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="{OnIdiom Phone=30, Tablet=60}" />
            <RowDefinition Height="auto" />
        </Grid.RowDefinitions>
        <StackLayout
            Grid.Row="0"
            BackgroundColor="Blue"
            HorizontalOptions="FillAndExpand"
            VerticalOptions="FillAndExpand" />
    </Grid>
Другие вопросы по тегам