Я пытаюсь установить свое изображение в качестве фона для своего приложения, используя BackgroundImage = "background.jpg", но я не могу каким-либо образом масштабировать его, чтобы разместить все изображение в приложении, кроме того, это не так. вообще не появляется на android. Вот код и фоновое изображение:
<?xml version = "1.0" encoding = "UTF-8"?>
<ContentPage Padding = "0, 40, 0, 0"
xmlns = "http://xamarin.com/schemas/2014/forms"
xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
x:Class = "RoseySports.Login_Page"
BackgroundImage = "Background.jpg">
<StackLayout HorizontalOptions = "Center" VerticalOptions = "Center">
<Label Text = "Email" HorizontalOptions = "Center"/>
<Entry Keyboard = "Email" WidthRequest = "300" x:Name = "email"/>
<Label Text = "Password" HorizontalOptions = "Center"/>
<Entry IsPassword = "true" WidthRequest = "300" x:Name = "password"/>
<Button Text = "Login" x:Name = "login" Clicked = "Handle_Clicked" TextColor = "Navy"/>
</StackLayout>
</ContentPage>
Что я обычно делаю для правильной установки изображения, так это использую Image над StackLayout и использую его свойство Aspect для соответствующей настройки. Убедитесь, что вы обернули все в сетку
Спасибо, @AbsoluteSith только что понял, что набрал его с большой буквы. Теперь работает на android. Работаем над аспектом сейчас
У меня странная ошибка. Поэтому, когда имя файла состоит из заглавной буквы B (Background.jpg), он работает на iOS, но не работает на android. И если это строчная буква b (background.jpg), она работает на android и выдает ошибку «Выбрано System.ArgumentNullException. Значение не может быть нулевым. Имя параметра: image» на iOS
Убедитесь, что на вашем ios есть изображение с именем background.jpg, а не Background.jpg.
Я проверил, но файл называется "background.jpg", а не "Background.jpg"





Получил это, используя вместо этого:
<?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 = "RoseySports.Login_Page">
<AbsoluteLayout VerticalOptions = "FillAndExpand" HorizontalOptions = "FillAndExpand">
<Image AbsoluteLayout.LayoutFlags = "All" AbsoluteLayout.LayoutBounds = "0, 0, 1, 1"
Source = "background.jpg" Aspect = "AspectFill"/>
<ScrollView AbsoluteLayout.LayoutFlags = "All" AbsoluteLayout.LayoutBounds = "0, 0, 1, 1">
<StackLayout Padding = "0, 40, 0, 0" HorizontalOptions = "Center" VerticalOptions = "Center" Grid.Column = "0" Grid.Row = "0">
<Label Text = "Email" HorizontalOptions = "Center" TextColor = "White"/>
<Entry Keyboard = "Email" WidthRequest = "300" x:Name = "email"/>
<Label Text = "Password" HorizontalOptions = "Center" TextColor = "White"/>
<Entry IsPassword = "true" WidthRequest = "300" x:Name = "password"/>
<Button Text = "Login" x:Name = "login" Clicked = "Handle_Clicked" TextColor = "Navy"/>
</StackLayout>
</ScrollView>
</AbsoluteLayout>
</ContentPage>
1. Чтобы использовать свойство BackgroundImage = "Background.jpg" BackgroundImage в IOS, необходимо добавить требуемый образ в каталог ресурсов IOS. Xamarin.Forms НЕ будет загружать изображение в свойство BackgroundImage, если оно находится в папке Resources, как для версий IOS до 7. Подробнее о каталоге активов IOS здесь.
2. Этого также можно добиться с помощью Сетка.
<?xml version = "1.0" encoding = "utf-8" ?>
<ContentPage xmlns = "http://xamarin.com/schemas/2014/forms"
xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml">
<Grid>
<Image Aspect = "AspectFill" x:Name = "BGImageLogin" Source = "Background.jpg" />
<ScrollView>
<StackLayout >
<Entry Placeholder = "Username"/>
<Entry Placeholder = "Password"
IsPassword = "True"/>
<Button Text = "Login""/>
</StackLayout>
</ScrollView>
</Grid>
</ContentPage>
Я считаю, что Android не позволяет использовать название ресурса с большой буквы. поэтому измените имя своего ресурса на background.jpg с Background.jpg