Из документации о AspectFill
Масштабируйте изображение, чтобы заполнить вид. Некоторые части могут быть обрезаны, чтобы заполнить представление.
Вместо этого следует использовать AspectFit
, оно не растягивает изображение, чтобы заполнить элемент управления, а помещает все изображение в элементе управления:
Масштабируйте изображение, чтобы оно соответствовало виду. Некоторые части могут быть оставлены пустыми (почтовый бокс).
EDIT
Я пробовал следующее
<Grid>
<Image HorizontalOptions="Center"
VerticalOptions="Center"
Source="http://lorempixel.com/output/abstract-q-c-200-200-6.jpg" />
</Grid>
и получилось следующее расположение:
Следовательно, похоже, что я предложил правильно - по крайней мере, принципиально. Я предполагаю, что ваше изображение просто слишком большое.
В любом случае, если вы хотите сохранить это изображение или хотите иметь больший контроль над тем, как оно отображается, вы можете выбрать один из следующих вариантов.
Используйте систему сетки, чтобы определить размер изображения
В пределах Grid
вы можете определить столбцы и строки. Столбцы (и строки соответственно), определенные с шириной (высотой) *
, будут занимать все доступное пространство. Если имеется несколько столбцов или строк размером *
, они будут равномерно разделять оставшееся пространство. Кроме того, вы можете указать *
веса столбцов и строк. Столбец Ar с шириной 2*
будет иметь вдвое большую ширину, чем столбец с шириной *
. Следовательно, вы можете определить столбцы с шириной 3*
, *
и 3*
и поместить свое изображение во второй столбец (индекс столбца 1
), чтобы изображение занимало 1/7th
ширины экрана.
Используйте
AbsoluteLayout
В AbsoluteLayout
вы можете определить позиции и размеры дочерних элементов. Вместо того, чтобы размещать изображения в Grid
, вы можете сделать следующее
<AbsoluteLayout>
<Image AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1" /> <!-- Background -->
<Image AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds=".5,.5,.2,.2" /> <!-- Logo with 20% width/height -->
</AbsoluteLayout>
Если вы предпочитаете устанавливать размер изображения абсолютно, вы можете сделать следующее
<Image AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds=".5,.5,150,150" />