Click or drag to resize

CalloutDefinition Class

Defines the content of a Callout when used to display on a GeoView using the various ShowCallout methods.
Inheritance Hierarchy

Namespace:  Esri.ArcGISRuntime.UI
Assembly:  Esri.ArcGISRuntime (in Esri.ArcGISRuntime.dll) Version: 100.11.0
public class CalloutDefinition

The CalloutDefinition type exposes the following members.

Public methodCode exampleCalloutDefinition(String)
Initializes a new instance of the CalloutDefinition class.
Public methodCalloutDefinition(GeoElement)
Initializes a new instance of the CalloutDefinition class from a GeoElement
Public methodCode exampleCalloutDefinition(String, String)
Initializes a new instance of the CalloutDefinition class.
Public propertyButtonImage
Gets or sets the an image to be provided for an optional the button
Public propertyDetailText
Gets or sets an optional description for the callout
Public propertyIcon
Gets or sets the an optional icon for a callout
Public propertyLeaderOffsetX
Gets or sets the horizontal offset relative to the location of the Callout
Public propertyLeaderOffsetY
Gets or sets the vertical offset relative to the location of the Callout
Public propertyMaxWidth
Gets or sets the the maximum width of the callout contents.
Public propertyOnButtonClick
Gets or sets the action executed when clicking the button.
Public propertyTag
Gets or sets the the tag will be parsed to the OnButtonClick action
Public propertyText
Gets or sets the header title for the callout
Public methodSetIconFromSymbolAsync
Generates the Icon from a Symbol


Example Name: ShowCallout

Show a callout with the latitude and longitude of user-tapped points.

Code example screen shot.

// Copyright 2017 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:
// 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.Geometry;
using Esri.ArcGISRuntime.Mapping;
using Esri.ArcGISRuntime.UI;
using Esri.ArcGISRuntime.UI.Controls;

namespace ArcGISRuntime.WPF.Samples.ShowCallout
        name: "Show callout",
        category: "MapView",
        description: "Show a callout with the latitude and longitude of user-tapped points.",
        instructions: "Tap anywhere on the map. A callout showing the WGS84 coordinates for the tapped point will appear.",
        tags: new[] { "balloon", "bubble", "callout", "flyout", "flyover", "info window", "popup", "tap" })]
    public partial class ShowCallout
        public ShowCallout()


        private void Initialize()
            // Create a new basemap using the streets base layer
            Basemap myBasemap = new Basemap(BasemapStyle.ArcGISStreets);

            // Create a new map based on the streets basemap
            Map myMap = new Map(myBasemap);

            // Assign the map to the MapView
            MyMapView.Map = myMap;

            // Wire up the MapView GeoVewTapped event
            MyMapView.GeoViewTapped += MyMapView_GeoViewTapped;

        private void MyMapView_GeoViewTapped(object sender, GeoViewInputEventArgs e)
            // Get the user-tapped location
            MapPoint mapLocation = e.Location;

            // Project the user-tapped map point location to a geometry
            Geometry myGeometry = GeometryEngine.Project(mapLocation, SpatialReferences.Wgs84);

            // Convert to geometry to a traditional Lat/Long map point
            MapPoint projectedLocation = (MapPoint)myGeometry;

            // Format the display callout string based upon the projected map point (example: "Lat: 100.123, Long: 100.234")
            string mapLocationDescription = string.Format("Lat: {0:F3} Long:{1:F3}", projectedLocation.Y, projectedLocation.X);

            // Create a new callout definition using the formatted string
            CalloutDefinition myCalloutDefinition = new CalloutDefinition("Location:", mapLocationDescription);

            // Display the callout
            MyMapView.ShowCalloutAt(mapLocation, myCalloutDefinition);
        <esri:MapView x:Name="MyMapView" />
        <Border Style="{StaticResource BorderStyle}">
            <TextBlock Text="Tap to show a callout."
                       TextAlignment="Center" />
See Also
Additional Examples
Hyperlink to ExampleDescription
FindAddressFind the location for an address.
FindPlaceFind places of interest near a location or within a specific area.
IdentifyRasterCellGet the cell value of a local raster at the tapped location and display the result in a callout.
MobileMapSearchAndRouteDisplay maps and use locators to enable search and routing offline using a Mobile Map Package.
OfflineGeocodeGeocode addresses to locations and reverse geocode locations to addresses offline.
ProjectProject a point from one spatial reference to another.
ReverseGeocodeUse an online service to find the address for a tapped point.
SelectEncFeaturesSelect features in an ENC layer.
ShowCalloutShow a callout with the latitude and longitude of user-tapped points.