Как написать код OnPlatform для RelativeLayout ConstraintExpression - PullRequest
2 голосов
/ 04 июня 2019

Я работаю над RelativeLayout. Я хочу предоставить ConstraintExpression для X,Y, Width and Height отдельно для iOS и Anroid.

Как я могу сделать это для кода ниже

<Picker ItemsSource="{Binding AttendanceType }"
    TitleColor="Black" Title="--Select--"   
    RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=.9}"
    RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent,Property=Height,Factor=.05}"
    RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width,Factor=0,Constant=22}"
    RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent,Property=Height,Factor=.28}">
</Picker>

1 Ответ

2 голосов
/ 04 июня 2019

Это должно работать с использованием «сжатого» синтаксиса платформы для xaml:

    <Picker ItemsSource="{Binding AttendanceType }"
            TitleColor="Black" Title="--Select--"   
            RelativeLayout.WidthConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width,Factor={OnPlatform Android=.9, iOS=.8}}"
            RelativeLayout.HeightConstraint="{ConstraintExpression Type=RelativeToParent,Property=Height,Factor={OnPlatform Android=.05, iOS=.04}}"
            RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent,Property=Width,Factor={OnPlatform Android=0, iOS=1},Constant={OnPlatform Android=22, iOS=21}}"
            RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent,Property=Height,Factor={OnPlatform Android=.28, iOS=.27}}">
    </Picker>

Подробнее о расширении разметки здесь: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/markup-extensions/consuming#onplatform-markup-extension

...