wpf-devexpress-dot-xpf-dot-map-dot-vectorlayerbase-77d5c9f5.md
Gets or sets the template that defines the presentation of the tooltip content for a vector element.
Namespace : DevExpress.Xpf.Map
Assembly : DevExpress.Xpf.Map.v25.2.dll
NuGet Package : DevExpress.Wpf.Map
[NonCategorized]
public DataTemplate ToolTipContentTemplate { get; set; }
<NonCategorized>
Public Property ToolTipContentTemplate As DataTemplate
| Type | Description |
|---|---|
| DataTemplate |
A DataTemplate object that contains the tooltip content template.
|
You can utilize the VectorLayerBase.ToolTipContentTemplate property to manage the tooltip’s content when map pies have an unknown number of segments:
The following code produces the image above:
<dx:ThemedWindow xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dxm="http://schemas.devexpress.com/winfx/2008/xaml/map"
xmlns:dxmt="http://schemas.devexpress.com/winfx/2008/xaml/map/themekeys"
xmlns:dxi="http://schemas.devexpress.com/winfx/2008/xaml/core/internal"
xmlns:local="clr-namespace:ToolTipSample"
x:Class="ToolTipSample.MainWindow"
Title="MainWindow"
Height="720"
Width="1280">
<dx:ThemedWindow.Resources>
<local:ToolTipInfoToMapPieConverter x:Key="tooltipInfoToMapPieConverter" />
<DataTemplate x:Key="tooltipSegmentTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="SegmentIdSizeGroup" />
<ColumnDefinition SharedSizeGroup="SegmentValueSizeGroup" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding SegmentId}"
Margin="0,0,16,0"
FontSize="16"
Foreground="{dxi:ThemeResource {dxmt:MapBrushesThemeKey ResourceKey=ToolTipForeground}}" />
<TextBlock Grid.Column="1"
Text="{Binding Value}"
TextAlignment="Right"
FontSize="16"
Foreground="{dxi:ThemeResource {dxmt:MapBrushesThemeKey ResourceKey=ToolTipForeground}}" />
</Grid>
</DataTemplate>
<DataTemplate x:Key="tooltipContentTemplate">
<StackPanel Orientation="Vertical"
DataContext="{Binding Converter={StaticResource tooltipInfoToMapPieConverter}}"
Margin="16">
<TextBlock Text="{Binding ItemId}"
FontSize="24"
Foreground="{dxi:ThemeResource {dxmt:MapBrushesThemeKey ResourceKey=ToolTipForeground}}" />
<ItemsControl ItemsSource="{Binding Segments}"
ItemTemplate="{StaticResource tooltipSegmentTemplate}"/>
</StackPanel>
</DataTemplate>
</dx:ThemedWindow.Resources>
<Grid>
<dxm:MapControl x:Name="mapControl" ToolTipEnabled="True">
<dxm:MapControl.Layers>
<dxm:ImageLayer>
<dxm:ImageLayer.DataProvider>
<dxm:BingMapDataProvider BingKey="YOUR_BING_KEY"
Kind="Road"/>
</dxm:ImageLayer.DataProvider>
</dxm:ImageLayer>
<dxm:VectorLayer x:Name="pieLayer"
DataLoaded="OnPieLayerDataLoaded"
ToolTipContentTemplate="{StaticResource tooltipContentTemplate}">
<dxm:VectorLayer.Colorizer>
<dxm:KeyColorColorizer>
<dxm:KeyColorColorizer.ItemKeyProvider>
<dxm:IdItemKeyProvider />
</dxm:KeyColorColorizer.ItemKeyProvider>
</dxm:KeyColorColorizer>
</dxm:VectorLayer.Colorizer>
<dxm:VectorLayer.Data>
<dxm:PieChartDataAdapter DataSource="{Binding EnergyStatisticsItems}"
ItemIdDataMember="Country"
ItemMinSize="25"
ItemMaxSize="100">
<dxm:PieChartDataAdapter.Mappings>
<dxm:MapPieMappingInfo Latitude="Latitude"
Longitude="Longitude"
SegmentId="EnergyType"
SegmentValue="Production" />
</dxm:PieChartDataAdapter.Mappings>
</dxm:PieChartDataAdapter>
</dxm:VectorLayer.Data>
</dxm:VectorLayer>
</dxm:MapControl.Layers>
<dxm:MapControl.Legends>
<dxm:ColorListLegend Layer="{Binding ElementName=pieLayer}" />
</dxm:MapControl.Legends>
</dxm:MapControl>
</Grid>
</dx:ThemedWindow>
using System;
using System.Globalization;
using System.Windows.Data;
using DevExpress.Xpf.Map;
namespace ToolTipSample {
public partial class MainWindow : DevExpress.Xpf.Core.ThemedWindow {
public MainWindow() {
InitializeComponent();
}
private void OnPieLayerDataLoaded(object sender, DataLoadedEventArgs e) {
mapControl.ZoomToFitLayerItems();
}
}
class ToolTipInfoToMapPieConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
if (!(value is ToolTipInfo info)) return null;
if (!(info.Layer is VectorLayer vectorLayer)) return null;
return vectorLayer.Data.GetItemBySourceObject(info.Item) as MapPie;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
throw new NotSupportedException();
}
}
}
Imports System.Globalization
Imports DevExpress.Xpf.Map
Class MainWindow
Private Sub OnPieLayerDataLoaded(sender As Object, e As DataLoadedEventArgs)
mapControl.ZoomToFitLayerItems()
End Sub
End Class
Class ToolTipInfoToMapPieConverter
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
Dim info = TryCast(value, ToolTipInfo)
If ((info Is Nothing)) Then Return Nothing
Dim vectorLayer = TryCast(info.Layer, VectorLayer)
If (vectorLayer Is Nothing) Then Return Nothing
Return TryCast(vectorLayer.Data.GetItemBySourceObject(info.Item), MapPie)
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
Throw New NotSupportedException()
End Function
End Class
See Also