Как отобразить всплывающее окно при нажатии на многоугольник в формах Xamarin - PullRequest
0 голосов
/ 04 февраля 2020

Я использую 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);
    }
}

1 Ответ

0 голосов
/ 04 февраля 2020

Добавьте распознаватель жестов к вашему виду и отобразите всплывающее окно в соответствии с вашими требованиями. Вы можете добавить жесты к любому виду в формах Xamarin.

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

Если вы хотите отобразить простое диалоговое окно с предупреждением, вы можете использовать DisplayAlert в формах Xamarin для достижения результата. Обратитесь к документации здесь для получения более подробной информации.

Если вы хотите sh отображать настраиваемое всплывающее окно в соответствии с требованиями вашего пользовательского интерфейса, то для него есть отличный плагин с открытым исходным кодом ( Rg.Plugins.Popup ). Вы можете скачать NuGet здесь . Здесь также есть различные примеры для достижения того, чего вы хотите.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...