I have logged it in our feedback portal by making this thread public. You can track its progress, subscribe for status changes and add your comments on the following link - feedback item.
I have also updated your Telerik points.
Currently, the possible solution that I can suggest is to use the following custom MapInputBehavior:
public
RadForm1()
{
InitializeComponent();
string
cacheFolder = @
"..\..\cache"
;
OpenStreetMapProvider osmProvider =
new
OpenStreetMapProvider();
LocalFileCacheProvider cache =
new
LocalFileCacheProvider(cacheFolder);
osmProvider.CacheProvider = cache;
this
.radMap1.MapElement.Providers.Add(osmProvider);
this
.radMap1.InputBehavior =
new
MyMapInputBehavior();
}
public
class
MyMapInputBehavior : MapInputBehavior
{
Point lastMouseLocation = Point.Empty;
public
override
void
OnMouseDown(MouseEventArgs e)
{
base
.OnMouseDown(e);
this
.lastMouseLocation = e.Location;
}
public
override
void
OnMouseMove(MouseEventArgs e)
{
if
(e.Button == MouseButtons.Left &&
this
.lastMouseLocation != Point.Empty && !
this
.MapElement.IsAnimationActive)
{
var panOffset =
new
SizeL(
this
.MapElement.PanOffset.Width + (e.X -
this
.lastMouseLocation.X),
this
.MapElement.PanOffset.Height + (e.Y -
this
.lastMouseLocation.Y));
long
mapSize = MapTileSystemHelper.MapSize(
this
.MapElement.ZoomLevel);
long
x = panOffset.Width;
long
y = panOffset.Height;
if
(x > 0)
{
x = 0;
}
else
if
(x < -mapSize +
this
.MapElement.ViewportInPixels.Width)
{
x = -mapSize +
this
.MapElement.ViewportInPixels.Width;
}
if
(mapSize <
this
.MapElement.ViewportInPixels.Height)
{
y = (
this
.MapElement.ViewportInPixels.Height - mapSize) / 2;
}
else
if
(y > 0)
{
y = 0;
}
else
if
(y <
this
.MapElement.ViewportInPixels.Height - mapSize)
{
y =
this
.MapElement.ViewportInPixels.Height - mapSize;
}
this
.MapElement.PanOffset =
new
SizeL(x, y);
this
.lastMouseLocation = e.Location;
}
}
public
override
void
OnMouseUp(MouseEventArgs e)
{
base
.OnMouseUp(e);
this
.lastMouseLocation = Point.Empty;
}
}