Cómo arrastrar y soltar una "caja" en Silverlight

He creado una caja como esta y ahora estoy intentando arrastrar y soltar la caja, con rectángulos y otros objetos que hice, pero con esto no sé cómo hacerlo.

Aquí está el código de cómo hice la caja.

XAML:

<Canvas>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <TextBox Text="{Binding Header,UpdateSourceTrigger=PropertyChanged}"
             BorderBrush="Black" BorderThickness="1" Canvas.Left="41" Canvas.Top="10" Width="97" />
        <TextBox Text="{Binding Text,UpdateSourceTrigger=PropertyChanged}"
             TextWrapping="Wrap"
             VerticalScrollBarVisibility="Auto"
             AcceptsReturn="True"
             BorderBrush="Black" BorderThickness="1" Grid.Row="1" Canvas.Left="41" Canvas.Top="39" Height="53" Width="97" />
    </Grid>
</Canvas>

El código c #:

public partial class MyBox : UserControl
{
    public static readonly DependencyProperty HeaderProperty = DependencyProperty.Register("Header", typeof(string), typeof(MyBox),null);
    public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Content", typeof(string), typeof(MyBox),null);

    public string Header
    {
        get { return GetValue(HeaderProperty) as string; }
        set { SetValue(HeaderProperty, value); }
    }

    public string Text
    {
        get { return GetValue(TextProperty) as string; }
        set { SetValue(TextProperty, value); }
    }

    public MyBox()
    {
        InitializeComponent();
        this.DataContext = this;    
    }

Y este es el código para agregar otro cuadro:

private void Button_Click(object sender, RoutedEventArgs e)
{
    panel.Children.Add(new MyBox
    {
        //LayoutRoot.Children.Add(new MyBox  {
        Header = "Another box",
        Text = "...",
        //    BorderBrush = Brushes.Black,
        BorderThickness = new Thickness(1),
        Margin = new Thickness(10)
    });
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta