Xamarin.Forms BackgroudImage не отображается - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь применить фоновое изображение ко всем страницам в моем приложении Xamarin.Forms, используя стиль приложения, но он не применяет стиль к страницам.

Я пробовал с этим:

Ресурсы App.xaml

...
<Application.Resources>
  <ResourceDictionary>
    <Style TargetType="Page">
      <Setter Property="BackgroundImageSource" Value="logo.png"/>
    </Style>
...

MainPage.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             x:Class="FinansovoPregledi.MainPage">
    <StackLayout Spacing="10" VerticalOptions="Center">
        <Button Text="Login" BackgroundColor="#006BE6" x:Name="scanButton" TextColor="WhiteSmoke" Command="{Binding LogInCommand}"/>
    </StackLayout>
</ContentPage>

MainPage.xaml.cs

    public partial class MainPage : ContentPage
    {
        LoginViewModel loginViewModel = new LoginViewModel();
        public MainPage()
        {
            InitializeComponent();
            BindingContext = loginViewModel;

        }
...

Это не работает. В моем сценарии фоновое изображение имеет белый фон с прозрачностью.

1 Ответ

2 голосов
/ 19 февраля 2020

ContentPage является производным от страницы и для применения вашего стиля к страницам, а также ко всем элементам управления, производным от страниц, необходимо установить для свойства ApplyToDerivedTypes вашего стиля значение True.

Your стиль должен быть

<Style ApplyToDerivedTypes="True" TargetType="Page">
  <Setter Property="BackgroundImageSource" Value="logo.png"/>
</Style>

Другой подход - установить для TargetType значение ContentPage

<Style TargetType="ContentPage">
  <Setter Property="BackgroundImageSource" Value="logo.png"/>
</Style>
...