http://codezine.jp/article/detail/6091 にあったサンプルコードをほぼそのまま使用したのですが、四角形の描写が行われません。
原因がよくわらないです。よろしくお願いします。

MainWindow.xaml

<Window x:Class="touch_test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Canvas x:Name="Canvas" HorizontalAlignment="Left" Height="319" VerticalAlignment="Top" Width="517" MouseDown="Canvas_MouseDown" TouchDown="Canvas_TouchDown">

    </Canvas>
</Window>

MainWindow.xaml.cs

namespace touch_test
{
    /// <summary>
    /// MainWindow.xaml の相互作用ロジック
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Canvas_TouchDown(object sender, TouchEventArgs e)
        {
            // 四角形用変数
            Rectangle rect = new Rectangle();
            // 四角形の幅と高さを設定
            rect.Width = 50;
            rect.Height = 50;

            // 乱数を使用して色を作成
            Random r = new Random();
            byte alpha = (byte)128;
            byte red = (byte)r.Next(0, 256);
            byte green = (byte)r.Next(0, 256);
            byte blue = (byte)r.Next(0, 256);

            // 作成した色で四角形を塗りつぶす
            rect.Fill = new SolidColorBrush(Color.FromArgb(alpha, red, green, blue));

            // ★★★タッチされた位置を取得★★★
            var tp = e.GetTouchPoint(Canvas);
            // 四角形を描画する位置をタッチされた位置にする
            rect.RenderTransform = new TranslateTransform(tp.Position.X - rect.Width / 2, tp.Position.Y - rect.Height / 2);

            // 作成した四角形をcanvas1に追加(表示)する
            Canvas.Children.Add(rect);
        }

        private void Canvas_MouseDown(object sender, MouseButtonEventArgs e)
        {
            // 四角形用変数
            Rectangle rect = new Rectangle();
            // 四角形の幅と高さを設定
            rect.Width = 50;
            rect.Height = 50;

            // 乱数を使用して色を作成
            Random r = new Random();
            byte alpha = (byte)128;
            byte red = (byte)r.Next(0, 256);
            byte green = (byte)r.Next(0, 256);
            byte blue = (byte)r.Next(0, 256);

            // 作成した色で四角形を塗りつぶす
            rect.Fill = new SolidColorBrush(Color.FromArgb(alpha, red, green, blue));

            // ★★★タッチされた位置を取得★★★
            var tp = e.GetPosition(Canvas);
            // 四角形を描画する位置をタッチされた位置にする
            rect.RenderTransform = new TranslateTransform(tp.X - rect.Width / 2, tp.Y - rect.Height / 2);
            // 作成した四角形をcanvas1に追加(表示)する
            Canvas.Children.Add(rect);
        }
    }
}