【问题标题】:How to Display Pop Up when the Polygon is clicked in Xamarin Forms在 Xamarin 表单中单击多边形时如何显示弹出窗口
【发布时间】:2020-02-04 12:17:23
【问题描述】:

我正在使用 WEB API 来检索坐标并将它们显示为我的地图上的多边形。 现在我想制作这些多边形,当他们单击以显示来自 API 的更多信息的弹出窗口时。 我的 Xaml:

  <maps:Map x:Name="map">
            <x:Arguments>
                <maps:MapSpan>
                    <x:Arguments>
                        <maps:Position>
                            <x:Arguments>
                                <x:Double>-30.241943</x:Double>
                                <x:Double>25.771944</x:Double>
                            </x:Arguments>
                        </maps:Position>
                        <x:Double>
                            20
                        </x:Double>
                        <x:Double>
                            20
                        </x:Double>
                    </x:Arguments>
                </maps:MapSpan>
            </x:Arguments>
            <maps:Map.MapElements>
            </maps:Map.MapElements>
        </maps:Map>
    </StackLayout>

然后是我用于添加多边形的 C# 代码:

foreach (var tempList in AlertsList)
{
    string alertType = tempList.AlertType;
    if (alertType == "Advisory")
    {
    polygon = new Polygon();
    polygon.StrokeColor = Color.FromHex("ffff00");
    polygon.FillColor = Color.FromHex("ffff00");
    polygon.StrokeWidth = 5f;

    foreach (var Poly in tempList.Polygon)
    {
        float Lat = float.Parse(Poly[0]);
        float Long = float.Parse(Poly[1]);
        polygon.Geopath.Add(new Position(Lat, Long));
    }
    // add to map
    map.MapElements.Add(polygon);
    }
}

【问题讨论】:

    标签: c# asp.net-mvc xamarin.forms polygon


    【解决方案1】:

    将手势识别器添加到您的视图并根据您的要求显示弹出窗口。您可以将手势添加到 Xamarin Forms 中的任何视图。

    var tapGestureRecognizer = new TapGestureRecognizer();
    tapGestureRecognizer.Tapped += (s, e) => {
        // handle the tap to display the popup here
    };
    [YourView].GestureRecognizers.Add(tapGestureRecognizer);
    

    如果您想显示一个简单的警报对话框,那么您可以使用 Xamarin 表单中的 DisplayAlert 来实现结果。有关详细信息,请参阅documentation here

    如果您希望根据您的 UI 要求显示自定义弹出窗口,那么可以使用一个出色的开源插件 (Rg.Plugins.Popup)。您可以下载NuGet here。它也有各种示例供您实现您想要的。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-06-27
      • 1970-01-01
      • 2017-11-26
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多