Как настроить OnPlatform только для конкретной платформы c? - PullRequest
2 голосов
/ 31 января 2020

Я программирую с помощью Xamarin.Forms. Я хотел бы знать, как установить запрос высоты только для одной платформы, используя OnPlatform в XAML? Я хочу сохранить значение по умолчанию -1, если платформа не указана.

В настоящее время у меня есть следующий код:

<ListView.HeightRequest>
    <OnPlatform x:TypeArguments="x:Double">
        <On Platform="WPF" Value="153" />
        <On Platform="Android" Value="-1" />
        <On Platform="iOS" Value="-1" />
        <On Platform="UWP" Value="-1" />
    </OnPlatform>
</ListView.HeightRequest>

I wi sh Мне нужно было только написать что-то вроде:

<ListView.HeightRequest>
    <OnPlatform x:TypeArguments="x:Double">
        <On Platform="WPF" Value="153" />
    </OnPlatform>
</ListView.HeightRequest>

Это не работает, это возможно?

Ответы [ 3 ]

1 голос
/ 31 января 2020

Это проще сделать из xaml.cs

Xaml

<ListView x:Name="myListView".....

Xaml.cs

if(Device.RuntimePlatform ==Device.WPF)
myListView.HeightRequest=153;
1 голос
/ 31 января 2020

Существует значение платформы Default, которое должно служить именно этой цели (хотя и не пробовал)

<ListView.HeightRequest>
    <OnPlatform x:TypeArguments="x:Double">
        <On Platform="WPF" Value="153" />
        <On Platform="Default" Value="-1" />
    </OnPlatform>
</ListView.HeightRequest>
0 голосов
/ 05 февраля 2020

Вы можете записать платформы с одинаковыми значениями в одну строку:

<ListView.HeightRequest>
    <OnPlatform x:TypeArguments="x:Double">
        <On Platform="WPF" Value="153" />
        <On Platform="Android,iOS,UWP" Value="-1" />
    </OnPlatform>
</ListView.HeightRequest>

См .: Предоставление спецификаций платформы c значений

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