Значение значения Xamarin.Forms WidthRequest

В Xamarin.Forms следующие свойства получают double: WidthRequest, HeightRequest, Padding, Spacing и т.д. В чем смысл этого числа? Это пиксели или что-то еще? Является ли значение, которое я вложил в эти свойства, реагируя на размер экрана устройства? Как мне решить, какую ценность я должен использовать, учитывая множество доступных размеров экрана?

Я также попытался напечатать ширину некоторых элементов и получил -1. Зачем?

Ответы

Ответ 1

Xamarin.Forms имеет философию использования соглашений базовых платформ так же, как и возможное. В соответствии с этой философией программист Xamarin.Forms работает с определенными размерами каждой конкретной платформой. Все размеры, с которыми программист сталкивается через API Xamarin.Forms находятся в этих независимых от платформы единицах, не зависящих от платформы. (c)

В форматах Xamarin эти числа имеют отношения с дюймами и сантиметры на определенной платформе. См. Ниже:

Это отношения в дюймах

  • iOS: 160 единиц на дюйм
  • Android: 160 единиц на дюйм
  • Windows Phone: 240 единиц на дюйм

Это отношения в сантиметрах, если вы предпочитаете метрическую систему

  • iOS: 64 единицы к сантиметру
  • Android: 64 единицы до сантиметров
  • Телефон Windows: от 96 единиц до сантиметров.

Например, если вы хотите, чтобы вы отображали изображение шириной 1 дюйм и высотой 2 дюйма, вы бы сделали:

var avatar = new Image{
    WidthRequest = Device.OnPlatform(160, 160, 240),
    HeightRequest = Device.OnPlatform(320, 320, 480)
};

Такая же концепция применяется к интервалу и заполнению. Эти параметры также имеют значения по умолчанию. Начальные настройки являются "макетными" значениями -1. Значения этих свойств становятся действительными только тогда, когда система макета позиционирует и определяет все на странице.

Надеюсь, это поможет!

Подробнее об этом можно узнать из книги "Создание мобильных приложений с форматами Xamarin"