WPFでタッチが認識されません。
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);
}
}
}