Думаю, я заблудился во всех твоих желаниях и тоже потерял себя ... Извини, об этом.
Получение абсолютных значений с дисплеев хорошо. Сложно, но есть новый Nuget-пакет, который еще находится в предварительной версии, называется Xamarin.Essentials, который позволит вам получить ширину и высоту телефона. и на основе вашего дизайна должно быть довольно легко определить нужный вам размер.
Чтобы установить пакет Nuget Xamarin.Essential, начните с галочки: Включить предварительный выпуск.
Добавить к коду:
using Xamarin.Essentials;
Вы можете получить ориентацию, вращение, плотность, ширину и высоту, и последнее не изменяется при вращении - если эмулятор Android Genymotions можно в это поверить.
var metrics = DeviceDisplay.ScreenMetrics;
// Orientation (Landscape, Portrait, Square, Unknown)
var orientation = metrics.Orientation;
// Rotation (0, 90, 180, 270)
var rotation = metrics.Rotation;
// Width (in pixels)
var width = metrics.Width;
// Height (in pixels)
var height = metrics.Height;
// Screen density
var density = metrics.Density;
Из того, что я могу сказать, он дает вам доступную высоту страницы, то есть с вычитаемой высотой любого меню сверху.
Подробнее об этом здесь: https://docs.microsoft.com/en-us/xamarin/essentials/?context=xamarin/xamarin-forms
--- Оригинальный пост "Относительный макет" ---
<RowDefinition
RelativeLayout.HeightConstraint="{ConstraintExpression
Type=RelativeToParent,
Property=Height,
Factor=0.1,
Constant=0}" />
<ColumnDefinition
RelativeLayout.WidthConstraint="{ConstraintExpression
Type=RelativeToParent,
Property=Heigth,
Factor=0.1,
Constant=0}"