Xamarin.Forms.GoogleMaps单击图钉后如何显示弹出窗口

时间:2020-10-18 20:01:34

标签: c# xamarin xamarin.forms xamarin.android maps

现在,我的代码如下:

       private void AddIvy()
        {
            Pin one = new Pin()
            {
                Label = "Ivy",
                Position = new Position(38.021436330, -78.653405170),
                Icon = BitmapDescriptorFactory.FromBundle("Recycle")
            };

            MyMap.Pins.Add(one);
            one.Clicked += onIvyClicked;
            MyMap.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(38.021436330, -78.653405170), Distance.FromKilometers(10)));
        }

        async private void onIvyClicked(object sender, EventArgs e)
        {
            await PopupNavigation.Instance.PushAsync(new Ivy());
        }

单击图钉one时,应显示弹出页面Ivy。它说one.Clicked已过时,将其更改为MyMap.PinClicked。但是,将代码更改为MyMap.PinClicked会使我地图上的每个图钉弹出Ivy。如何更改代码,以便仅在单击Ivy时弹出one

1 个答案:

答案 0 :(得分:0)

Pin 类定义一个MarkerClicked事件,该事件在敲击Pin时触发。

您可以尝试使用:

Pin one = new Pin()
{
    Label = "Ivy",
    Position = new Position(38.021436330, -78.653405170),
    Icon = BitmapDescriptorFactory.FromBundle("Recycle")
};

one.MarkerClicked += async (s, args) =>
{
    await PopupNavigation.Instance.PushAsync(new Ivy());
};

您可以参考的更多Interact with a pin