Click or drag to resize

Popup Class

Represents a popup as a pair (GeoElement, PopupDefinition). This connects a Graphic or a Feature to the PopupDefinition defined by its containing layer.
Inheritance Hierarchy
SystemObject
  Esri.ArcGISRuntime.Mapping.PopupsPopup

Namespace:  Esri.ArcGISRuntime.Mapping.Popups
Assembly:  Esri.ArcGISRuntime (in Esri.ArcGISRuntime.dll) Version: 100.11.0
Syntax
public sealed class Popup

The Popup type exposes the following members.

Constructors
  NameDescription
Public methodPopup
Initializes a new instance of the Popup class.
Top
Properties
  NameDescription
Public propertyCode exampleGeoElement
Gets the GeoElement.
Public propertyPopupDefinition
Gets the PopupDefinition.
Public propertySymbol
Gets the popup's symbol.
Public propertyTitle
Gets the popup's title.
Top
Methods
  NameDescription
Public methodEvaluateExpressionsAsync
Evaluates asynchronously all Arcade expressions including FeatureSets available at Expressions. This method must be called before displaying the popup information in a UI so you can use synchronous methods GetFormattedValue(PopupField) to get the formatted string representation. If there are no Expressions then result will be empty.
Protected methodFinalize
Finalizer for the PopUp class
(Overrides ObjectFinalize.)
Public methodStatic memberFromGeoElement
Creates a new popup from a GeoElement.
Public methodGetFormattedValue
Returns the formatted value of the popup field.
Top
Remarks
Popups can be configured for individual layers in a map via a PopupDefinition.
Examples

WPF

Example Name: ShowPopup

Show predefined popups from a web map.

Code example screen shot.

C#
// Copyright 2020 Esri.
// 
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
// You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
// language governing permissions and limitations under the License.

using Esri.ArcGISRuntime.Data;
using Esri.ArcGISRuntime.Geometry;
using Esri.ArcGISRuntime.Mapping;
using Esri.ArcGISRuntime.Mapping.Popups;
using Esri.ArcGISRuntime.UI.Controls;
using System;
using System.Diagnostics;
using System.Linq;

namespace ArcGISRuntime.WPF.Samples.ShowPopup
{
    [ArcGISRuntime.Samples.Shared.Attributes.Sample(
        name: "Show popup",
        category: "Layers",
        description: "Show predefined popups from a web map.",
        instructions: "Click on the features to prompt a popup that displays information about the feature.",
        tags: new[] { "feature", "feature layer", "popup", "toolkit", "web map" })]
    public partial class ShowPopup
    {
        public ShowPopup()
        {
            InitializeComponent();
            Initialize();
        }

        private void Initialize()
        {
            // Load the map.
            MyMapView.Map = new Map(new Uri("https://arcgisruntime.maps.arcgis.com/home/item.html?id=fb788308ea2e4d8682b9c05ef641f273"));
        }

        private async void MapViewTapped(object sender, GeoViewInputEventArgs e)
        {
            try
            {
                // Get the feature layer from the map.
                FeatureLayer incidentLayer = MyMapView.Map.OperationalLayers.First() as FeatureLayer;

                // Identify the tapped on feature.
                IdentifyLayerResult result = await MyMapView.IdentifyLayerAsync(incidentLayer, e.Position, 12, true);

                if (result?.Popups?.FirstOrDefault() is Popup popup)
                {
                    // Remove the instructions label.
                    InstructionsLabel.Visibility = System.Windows.Visibility.Hidden;

                    // Create a new popup manager for the popup.
                    MyPopupViewer.PopupManager = new PopupManager(popup);

                    QueryParameters queryParams = new QueryParameters
                    {
                        // Set the geometry to selection envelope for selection by geometry.
                        Geometry = new Envelope((MapPoint)popup.GeoElement.Geometry, 6, 6)
                    };

                    // Select the features based on query parameters defined above.
                    await incidentLayer.SelectFeaturesAsync(queryParams, SelectionMode.New);
                }
            }
            catch (Exception ex)
            {
                Debug.Print(ex.Message);
            }
        }
    }
}
XAML
<UserControl
    x:Class="ArcGISRuntime.WPF.Samples.ShowPopup.ShowPopup"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:esri="http://schemas.esri.com/arcgis/runtime/2013">
    <Grid>
        <esri:MapView x:Name="MyMapView" GeoViewTapped="MapViewTapped" />
        <Border Style="{StaticResource BorderStyle}">
            <Grid>
                <Label x:Name="InstructionsLabel" Content="Click a feature to display its popup." />
                <esri:PopupViewer x:Name="MyPopupViewer" Width="400" />
            </Grid>
        </Border>
    </Grid>
</UserControl>
See Also
Additional Examples
Hyperlink to ExampleDescription
ShowPopupShow predefined popups from a web map.