How to reproduce:
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
MapLayer pointLayer = new MapLayer("PointG");
pointLayer.ClusterStrategy = new ElementClusterStrategy();
pointLayer.ClusterDistance = 100;
this.radMap1.Layers.Add(pointLayer);
MapPin pin1 = new MapPin(new PointG(45d, 15d)) { BackColor = Color.Coral, ToolTipText = "Tool Tip1" };
MapPin pin2 = new MapPin(new PointG(44d, 18d)) { BackColor = Color.Coral, ToolTipText = "Tool Tip2" };
this.radMap1.Layers["PointG"].Add(pin1);
this.radMap1.Layers["PointG"].Add(pin2);
this.SetupProviders();
}
private void radMap1_ToolTipTextNeeded(object sender, Telerik.WinControls.ToolTipTextNeededEventArgs e)
{
MapCluster cluster = sender as MapCluster;
if (cluster != null && cluster.ClusteredItems.Count == 1)
{
cluster.ToolTipText = ((MapPin)cluster.ClusteredItems[0]).ToolTipText;
}
}
private void SetupProviders()
{
string cacheFolder = @"..\..\cache";
BingRestMapProvider bingProvider = new BingRestMapProvider();
bingProvider.Culture = System.Threading.Thread.CurrentThread.CurrentCulture;
bingProvider.ImagerySet = ImagerySet.Road;
bingProvider.UseSession = true;
bingProvider.BingKey = "...";
LocalFileCacheProvider cache = new LocalFileCacheProvider(cacheFolder);
bingProvider.CacheProvider = cache;
this.radMap1.MapElement.Providers.Add(bingProvider);
bingProvider.InitializationComplete += bingProvider_InitializationComplete;
}
private void bingProvider_InitializationComplete(object sender, EventArgs e)
{
this.radMap1.BringIntoView(new PointG(45d, 15d), 5);
}
}
Workaround: handle the ToolTipNeededEvent
private void radMap1_ToolTipTextNeeded(object sender, Telerik.WinControls.ToolTipTextNeededEventArgs e)
{
MapCluster cluster = sender as MapCluster;
if (cluster != null && cluster.ClusteredItems.Count == 1)
{
cluster.ToolTipText = ((MapPin)cluster.ClusteredItems[0]).ToolTipText;
}
}