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
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
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-color-manually-added-shapes-using-the-choropleth-colorizer-e4744
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;
}
Related GitHub Examples
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.