繁体   English   中英

MasterDetailPage 背景图像未显示在 xamarin.forms 中的 IOS 中

[英]MasterDetailPage background image not displaying in IOS in xamarin.forms

我在 Xamarin.Forms 中使用 MasterDetailPage。 我在 OnAppearing() 方法中设置了 BackgroundImage 属性。 它在android中运行良好。 但是,在 IOS 中不显示图像。

我的代码:XAML

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="EzySales.Views.MainPageMaster"
         Title="Master" >
<StackLayout VerticalOptions="FillAndExpand">
    <ListView x:Name="MenuItemsListView" WidthRequest="200"
          HasUnevenRows="true"
          ItemsSource="{Binding MenuItems}"
          SeparatorColor="White">
        <ListView.Header>
            <Grid >
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="10"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="10"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="30"/>
                    <RowDefinition Height="80"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="10"/>
                </Grid.RowDefinitions>
                <Image Source="logo.png" Grid.Row="1" Grid.Column="1"></Image>
            </Grid>
        </ListView.Header>
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell Grid.Row="2">
                    <StackLayout Padding="15,10" Orientation="Horizontal">
                        <Image Source="{Binding Icon}"
                                WidthRequest="30"
                                HeightRequest="30" Margin="0,0,5,0"
                                VerticalOptions="Center" />
                        <Label VerticalOptions="FillAndExpand" 
                            VerticalTextAlignment="Center" 
                            HorizontalTextAlignment="Center"                     
                            Text="{Binding Title}" 
                            TextColor="White"                    
                            FontSize="16" FontAttributes="Bold" />
                    </StackLayout>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</StackLayout>

MainPageMaster.xaml.cs

 protected override void OnAppearing()
    {
        this.BackgroundImage = "masterpagebg.png";           
    }

图像在资源文件夹中可用。

我也面临同样的问题并解决了。 试试这个希望它会有所帮助..

您可以使用相对布局来实现结果

<RelativeLayout>
    <Image Source="masterpagebg.png" Opacity="1"
                RelativeLayout.WidthConstraint=
                  "{ConstraintExpression Type=RelativeToParent, Property=Width}"
                RelativeLayout.HeightConstraint=
                  "{ConstraintExpression Type=RelativeToParent, Property=Height}"/>

       <ListView RelativeLayout.WidthConstraint=
              "{ConstraintExpression Type=RelativeToParent, Property=Width}"
            RelativeLayout.HeightConstraint=
              "{ConstraintExpression Type=RelativeToParent, Property=Height}" x:Name="MenuItemsListView" WidthRequest="200"
      HasUnevenRows="true"
      ItemsSource="{Binding MenuItems}"
      SeparatorColor="White">
    <ListView.Header>
        <Grid >
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="10"/>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="10"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="30"/>
                <RowDefinition Height="80"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="10"/>
            </Grid.RowDefinitions>
            <Image Source="logo.png" Grid.Row="1" Grid.Column="1"></Image>
        </Grid>
    </ListView.Header>
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell Grid.Row="2">
                <StackLayout Padding="15,10" Orientation="Horizontal">
                    <Image Source="{Binding Icon}"
                            WidthRequest="30"
                            HeightRequest="30" Margin="0,0,5,0"
                            VerticalOptions="Center" />
                    <Label VerticalOptions="FillAndExpand" 
                        VerticalTextAlignment="Center" 
                        HorizontalTextAlignment="Center"                     
                        Text="{Binding Title}" 
                        TextColor="White"                    
                        FontSize="16" FontAttributes="Bold" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
  </RelativeLayout>

您应该检查图像是否作为 BundleResource 设置到 iOS 项目,如果没有,则应将其设置为如此。 我自己在这方面遇到了一些麻烦。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM