Неправильное измерение изображения в формах Xamarin

Я хочу показать png-изображение размером 60 * 60 пикселей в моем проекте Android на основе Xamarin Forms с использованием Visual Studio 2013 и последней версии Xamaring.

Я выполнил следующие шаги:

  • Расположите изображение png в папке Resources \ Drawable.
  • Установите действие сборки изображения на AndroidResource.
  • Создал объект Xamarin.Forms.Image следующим образом:
    protected static Image CreateHeaderLeftImage()
    {
        Image image = new Image();

        image.Source = Device.OnPlatform(null, ImageSource.FromFile("image.png"), null);

        image.WidthRequest = 60;
        image.HeightRequest = 60;

        image.VerticalOptions = LayoutOptions.Center;
        image.HorizontalOptions = LayoutOptions.Center;

        return image;
    }
  • В App.GetMainPage () я просто устанавливаю Content главной страницы на созданное изображение
public static Page GetMainPage()
{
    ContentPage contentPage = new ContentPage();

    contentPage.Content = CreateHeaderLeftImage();

    return contentPage;
}

Изображение появляется в середине страницы с удвоенной высотой и удвоенной шириной! Я сделал скриншот страницы и измерил изображение, оно 120 * 120 вместо 60 * 60!

Я повторно использовал приведенный выше код из многих примеров Xamarin!

Почему изображение увеличено?


person Siraf    schedule 15.08.2014    source источник


Ответы (1)


Xamarin.Forms не использует пиксели для определения размера элементов просмотра.

http://forums.xamarin.com/discussion/18255/coordinate-units

Таким образом, вы не указываете, что что-то должно быть 60 пикселей, но в случае Android - 60 точек на дюйм.

person Frank    schedule 20.08.2014