Форма Xamarin: -BackgroundImage для содержимого страницы не растягивается - PullRequest
0 голосов
/ 23 января 2019

Я добавил простой BackgroundImage для страницы контента, он отлично работает на всех устройствах. Но проблема только в IOS IPhone XS MAX изображение не растягивается. А также нет опции для Aspect for backgroundImage.

 <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Demo.Welcome"
             BackgroundImage="bg.png">

  <ContentPage.Content>

  </ContentPage.Content>
</ContentPage>

Примечание. Я проверил, что изображение вращается, и пиксель идеальный.

Что мне делать?

Ответы [ 3 ]

0 голосов
/ 24 января 2019

Вместо пользовательского средства визуализации вы можете использовать макет сетки, поскольку макет сетки может управлять z-индексом, поэтому вы можете разместить изображение под содержимым. Как это:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="Demo.Welcome">
    <ContentPage.Content>
        <Grid>
        <Image
            HorizontalOptions="FillAndExpand"
            VerticalOptions="FillAndExpand"
            Aspect="AspectFill"
            Source="bg.png" />
            <ScrollView
                HorizontalOptions="FillAndExpand"
                VerticalOptions="FillAndExpand">
                <!--
                    ...
                    Your content here
                    ...
                -->
            </ScrollView>
        </Grid>
    </ContentPage.Content>
</ContentPage>
0 голосов
/ 24 января 2019
 <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Demo.Welcome">
  <ContentPage.Content>
      <AbsoluteLayout>
         <Image Source="bg.png" AbsoluteLayout.LayoutBounds="1.,1.,1,1"  AbsoluteLayout.LayoutFlags="All" Aspect="Fill"/>          
      </AbsoluteLayout>
  </ContentPage.Content>
</ContentPage>
0 голосов
/ 23 января 2019

Вы можете использовать CustomRenderer, чтобы установить фоновое изображение (Адаптируйтесь к своему PageName и пространствам имен. Я использовал это для заполнения изображений на страницах iOS.

[assembly: ExportRenderer(typeof(Forms.TestPage), typeof(.iOS.Renderers.TestPage))]
namespace Mindflow.Gamification.Mercedes.iOS.Renderers
{
    public class TestPage : PageRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

            if (e.OldElement != null || Element == null)
            {
                return;
            }


            var page = e.NewElement as Mindflow.Gamification.Forms.Pages.Game.GamePage;

            UIGraphics.BeginImageContext(View.Frame.Size);
            UIImage i = UIImage.FromFile(page.BackgroundImage);
            i = i.Scale(View.Frame.Size);

            View.BackgroundColor = UIColor.FromPatternImage(i);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...