Skip to main content
All docs
V25.1
  • Hints and Tooltips

    • 4 minutes to read

    The Map Control displays tooltips for vector items when a user hovers over an item.

    image

    Note

    The image above shows a tooltip for a vector item that is generated from a shapefile. Data for tooltips is loaded from attributes. See the ShapefileDataAdapter help topic for more information.

    Enable Tooltips and Specify Content

    You can show attribute values and custom text in tooltips. Set the MapControl.ShowToolTips property to true to enable tooltips. Use the MapItemsLayerBase.ToolTipPattern property to specify a tooltip text pattern for all items in a vector layer. Enclose attribute names in brackets to use them in the pattern.

    mapControl1.ShowToolTips = true;
    vectorItemsLayer1.ToolTipPattern = "{NAME}\nPopulation: {POP_EST}";
    

    image

    Use the MapItem.ToolTipPattern property to set a tooltip pattern for a single vector element. The MapItem.Attributes property contains item attributes.

    image

    MapPolygon item = new MapPolygon();
    item.Points.Add(new GeoPoint(0, 0));
    item.Points.Add(new GeoPoint(0, 40));
    item.Points.Add(new GeoPoint(40, 0));
    item.Points.Add(new GeoPoint(0, 0));
    item.Fill = Color.CornflowerBlue;
    double shapeArea = GeoUtils.CalculateArea(item) / 1000000;
    item.Attributes.Add(new MapItemAttribute() {
        Name = "AreaValue",
        Type = typeof(double),
        Value = String.Format("{0:F0} km²", shapeArea)
    });
    item.Attributes.Add(new MapItemAttribute() {
        Name = "PolygonName",
        Type = typeof(string),
        Value = "Triangle Area"
    });
    item.ToolTipPattern = "{PolygonName}\nValue={AreaValue}";
    MapItemStorage storage = new MapItemStorage();
    storage.Items.Add(item);
    VectorItemsLayer vectorLayer = new VectorItemsLayer();
    vectorLayer.Data = storage;
    mapControl1.Layers.Add(vectorLayer);
    

    The ToolTipPattern property can contain HTML tags. See Customize Appearance section for more information.

    You can handle the MapItemsLayerBase.AttributeDisplayValueEdit event to modify existing item attributes.

    private void VectorLayer_AttributeDisplayValueEdit(object sender, DevExpress.Map.AttributeDisplayValueEditEventArgs e) {
        if (e.Value == null){
            e.DisplayValue = "Unknown";
        }
    }
    

    Customize Appearance

    Use ToolTipController to customize tooltip settings. Refer to the Hints and Tooltips help topic for more information.

    To specify tooltip settings, create a ToolTipController object and set its properties. For example, set the ToolTipController.AllowHtmlText property to true to use HTML tags in ToolTipPattern.

    Set the MapControl.ToolTipController property to the ToolTipController object to apply the settings to the Map Control’s tooltips:

    vectorItemsLayer1.ToolTipPattern = "<b>{NAME}</b><br> GDP:${GDP_MD_EST}M";
    
    DevExpress.Utils.ToolTipController toolTipController = new DevExpress.Utils.ToolTipController();
    toolTipController.AllowHtmlText = true;
    toolTipController.Appearance.ForeColor = Color.DarkGreen;
    toolTipController.InitialDelay = 250; 
    mapControl1.ToolTipController = toolTipController;
    

    image

    View Example: How to: Customize Mini Map Layers

    Display Tooltips for Map Overlay

    Follow the steps below to display tooltips for overlay elements.

    private void MapControl_MouseMove(object sender, MouseEventArgs e) {
      MapControl mapControl = (MapControl)sender;
      MapHitInfo hitInfo = mapControl.CalcHitInfo(e.Location);
      if (hitInfo.UiHitInfo.HitElement == MapHitUiElementType.Overlay) {
          ToolTipController defaultController = ToolTipController.DefaultController;
          defaultController.SetToolTip(mapControl, "My Tooltip");
      }
    }
    
    See Also