このようにタップ/クリックに基づいて画像の位置を設定しようとしています(「contentGrid」はPageの唯一の子であり、画面全体に表示されることに注意してください)
private void contentGrid_Tapped(object sender, TappedRoutedEventArgs e)
{
Uri uri = new Uri("ms-appx:///Images/Test.png");
BitmapImage bitmap = new BitmapImage(uri);
Image image = new Image();
image.Source = bitmap;
// The .png is a 30px by 30px image
image.Width = 30;
image.Height = 30;
image.Stretch = Stretch.None;
Point tappedPoint = e.GetPosition(contentGrid);
TranslateTransform posTransform = new TranslateTransform();
posTransform.X = tappedPoint.X;
posTransform.Y = tappedPoint.Y;
image.RenderTransform = posTransform;
contentGrid.Children.Add(image);
}
その結果、クリックするとページにTest.pngの画像が表示されますが、タップ/クリックした位置には表示されません。ページ幅の半分とページ高さの半分だけ視覚的にオフセットされます。
ここで相対的な位置を理解しようとしています-ユーザーが実際にタップ/クリックしたポイントに画像を変換するための最良の方法は何ですか?