Skip to main content
A newer version of this page is available. .

MapItem.ToolTipPattern Property

Gets or sets a string which represents the pattern specifying the text to be displayed within a tooltip that appears for a map item.

Namespace: DevExpress.XtraMap

Assembly: DevExpress.XtraMap.v19.2.dll

Declaration

[DefaultValue("")]
public string ToolTipPattern { get; set; }

Property Value

Type Default Description
String String.Empty

A string value that is the tooltip pattern.

Remarks

The pattern string can contain placeholders that the Map Control replaces with specific values when generating tooltip text for a map item. The tooltip pattern supports the following groups of placeholders:

Attribute Placeholders

These placeholders define values of map item attributes and enclosed with braces (“{“, “}”). For example the “{NAME}: ${GDP_MD_EST:#,0}M” pattern utilizes two placeholders. The first placeholder is for the NAME attribute and the second placeholder is for the GDP_MD_EST attribute. Note that the second placeholder has the #,0 format string that goes after the “:” symbol.

Map Chart Value Placeholders

The Map Control uses this placeholder group to display map bubbles’ and map pies’ arguments and values in the tooltip. The “%” symbol encloses these placeholders. The following table lists available placeholders:

Placeholder Placeholder’s meaning for Map Bubbles Placeholder’s meaning for Map Pies
A A map bubble’s argument. Data objects’ PieChartDataAdapter.PieItemDataMember field value when the Pie Chart Data adapter generates map pies.
V A map bubble’s value. A map pie’s total value.
A<index> Is not supported. An argument of a map pie segment with the specified index.
V<index> Is not supported. A value of a map pie segment with the specified index.

For example, the “%A0%: %V0%\r\n%A1%: %V1%\r\n%A2%: %V2%” pattern generates the text that displays the first three segments’ arguments and values.

The chart value attributes with indices are useful when all map pies have a similar number of segments. You can use the ToolTip Controller to manage the tooltip’s content when map pies have various segment counts:

private void Form1_Load(object sender, EventArgs e) {
    ToolTipController toolTipController = new ToolTipController();
    toolTipController.BeforeShow += OnBeforeShowToolTip;
    mapControl.ToolTipController = toolTipController;
}

private void OnBeforeShowToolTip(object sender, ToolTipControllerShowEventArgs e) {
    if (!(e.SelectedObject is MapPie mapPie)) return;
    e.Title = mapPie.Argument.ToString();
    e.ToolTip = BuildSegmentsTooltip(mapPie.Segments);
}

private string BuildSegmentsTooltip(PieSegmentCollection segments) {
    if (segments.Count == 0) return String.Empty;
    var segment = segments[0];
    var builder = new StringBuilder()
        .Append(segment.Argument)
        .Append(": ")
        .Append(segment.Value);
    for (int i = 1; i < segments.Count; i++) {
        segment = segments[i];
        builder.Append(Environment.NewLine)
               .Append(segment.Argument)
               .Append(": ")
               .Append(segment.Value);
    }
    return builder.ToString();
}

The code above utilizes the following classes and members:

Symbol Description
ToolTipController Provides tooltip management for individual controls.
ToolTipController.BeforeShow Enables you to customize the text and settings of the tooltip before displaying it onscreen.
MapPie The class used to draw a pie chart on a map.
MapPie.Argument Gets or sets an object, which provides arguments for the MapPie.
MapPie.Segments Gets or sets segments of a map pie.
PieSegment A segment of a pie chart item.
PieSegment.Argument Gets or sets an object, which provides arguments for the PieSegment.
PieSegment.Value Gets or sets the value of the pie segment.

Example

private MapPolygon CreatePolygon(double areaValue, string polygonName, GeoPoint[] points) {
    MapPolygon item = new MapPolygon();

    item.Attributes.Add(new MapItemAttribute() {
        Name = areaValueAttrName,
        Type = typeof(double),
        Value = areaValue
    });
    item.Attributes.Add(new MapItemAttribute() {
        Name = polygonNameAttrName,
        Type = typeof(string),
        Value = polygonName
    });

    item.ToolTipPattern = "{" + polygonNameAttrName + "}=<b>{" + areaValueAttrName + "}</b>";

    foreach (GeoPoint point in points) {
        item.Points.Add(point);
    }

    return item;
}

The following code snippet (auto-collected from DevExpress Examples) contains a reference to the ToolTipPattern property.

Note

The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also