here is my solution using only XAML:
1- in the headers of the .XAML page
add this reference:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
2- for any XAML object you want to set as drag-able use the following code(my example is on rectangle):
<Rectangle Height="104" HorizontalAlignment="Left" Margin="80,90,0,0" Name="rectangle1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="124" AllowDrop="False">
<i:Interaction.Behaviors>
<el:MouseDragElementBehavior ConstrainToParentBounds="True"/>
</i:Interaction.Behaviors>
</Rectangle>
and now it's your job to implement the hold tap thing and control it in anyway you wish :)
if you found this useful please mark as solution and rate so more people see it
Regards