如何在xamarin表单应用程序中单击按钮时弹出图像?

时间:2017-07-21 20:27:00

标签: c# xaml xamarin xamarin.forms

您好我正在使用xamarin表单应用程序显示地图,当用户单击按钮时,地图上的图例图像会弹出。我正在使用这个nuget包来获得弹出效果:Rtorgames Popup package

问题是,当我点击按钮时,弹出窗口工作但没有显示图例图像,图像位于iOS和Android的正确目录中。

继承我的MapPage.xaml的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"
             x:Class="AppName.Forms.Pages.Map">
    <ContentView x:Name="contentView" ControlTemplate="{StaticResource MapNavBar}">
    <StackLayout>    
        <Button Text = "Legand" HorizontalOptions = "End" VerticalOptions="End" Clicked="legend_OnClicked"></Button>       
        <Grid HorizontalOptions="FillAndExpand" >
            <Image Source="Map.png" Scale="1.0" Aspect="AspectFit" />
        </Grid>
    </StackLayout>   
    </ContentView>
</ContentPage>

这里是MapPage.xaml背后的代码:

using System;
using Rg.Plugins.Popup.Extensions;
using Rg.Plugins.Popup.Services;
using Xamarin.Forms;

namespace AppName.Forms.Pages
{
    public partial class Map : ContentPage
    {
        public Map()
        {
            InitializeComponent();    
        }

        private async void legend_OnClicked(object sender, EventArgs e)
        {
            var page = new LegendPage();

            await Navigation.PushPopupAsync(page);     
        }
    }
}

这里是legendPage xaml代码:

<?xml version="1.0" encoding="utf-8" ?>
<pages:PopupPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup"
             xmlns:animations="clr-namespace:Rg.Plugins.Popup.Animations;assembly=Rg.Plugins.Popup"
             x:Class="AppName.Forms.Pages.LegendPage">
    <StackLayout>
        <Grid HorizontalOptions="FillAndExpand" >
            <Image Source="legend.png" Scale="1.0" Aspect="AspectFit" />
        </Grid>    
    </StackLayout>          
</pages:PopupPage>

最后这里是legendPage.xaml背后的代码:

using Xamarin.Forms;
using System;
using Rg.Plugins.Popup.Pages;
using System.Threading.Tasks;

namespace AppName.Forms.Pages
{
    public partial class LegendPage : PopupPage
    {
        public LegendPage()
        {

        }


        protected override void OnAppearing()
        {
            base.OnAppearing();
        }

        protected override void OnDisappearing()
        {
            base.OnDisappearing();
        }

        // Method for animation child in PopupPage
        // Invoced after custom animation end


        protected override bool OnBackButtonPressed()
        {
            // Prevent hide popup
            //return base.OnBackButtonPressed();
            return true;
        }

        // Invoced when background is clicked
        protected override bool OnBackgroundClicked()
        {
            // Return default value - CloseWhenBackgroundIsClicked
            return base.OnBackgroundClicked();
        }
    }
}

任何帮助都会很棒!

提前致谢! :)

0 个答案:

没有答案