我正在使用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);
}
}
答案 0 :(得分:0)
将“手势识别器”添加到视图中,并根据需要显示弹出窗口。您可以将手势添加到Xamarin表单中的任何视图。
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。它也有各种示例供您实现所需的内容。
希望对您有所帮助。