I assume you are using the Surface SDK. (If not, why not?)
Then this is a great resource: http://msdn.microsoft.com/en-us/library/ff727837.aspx
edit: Rereading your question I saw you used a Touch-overlay. Is it right that these do not trigger the Windows 7 touch events, but merely simulate a mouse? If so, then I'm a little curious as to why drag-and-drop with this does not work as with a regular mouse.
edit2:
So what you need to do is to add two listeners in the datatemplate; PreviewTouchDown and PreviewTouchMove.
This is what I use to start a Drag operation with mouse, but it should work with touch as well, with some modifications.
private void TreePreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_startPoint = e.GetPosition(null);
_checkDragDrop = true;
}
private void TempTreeMouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
var mousePos = e.GetPosition(null);
var diff = _startPoint - mousePos;
if (_checkDragDrop)
{
if (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance || Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance)
{
_checkDragDrop = false;
.
.
.
DragDropEffects val = DragDrop.DoDragDrop(DragSourceList, dragData, DragDropEffects.Move);
}
}
}
}
You probably cannot use the Telerik class with this.