2011-01-10 73 views
0

我添加了圖片作爲兒童圖層稱爲「畫布」。通過以下代碼:WPF:從觸摸獲取指定圖像

if (addChild) 
{ 
    Image i = new Image(); 
    BitmapImage src = new BitmapImage(); 
    src.BeginInit(); 
    src.UriSource = new Uri(path, UriKind.Absolute); 
    src.EndInit(); 
    i.Source = src; 
    i.Width = 200; 
    i.IsManipulationEnabled = true; 
    double rotAngle = Rand.GetRandomDouble(-3.14/4, 3.14/4); 

    i.RenderTransform = new MatrixTransform(Math.Cos(rotAngle), -Math.Sin(rotAngle), 
                Math.Sin(rotAngle), Math.Cos(rotAngle), Rand.GetRandomDouble(0, this.Width - i.Width), Rand.GetRandomDouble(0, this.Height - i.Width)); 

    canvasImages.Add(i); 
    canvas.Children.Add(i); 
    Canvas.SetZIndex(i, canvas.Children.Count-1); 
    addedFiles.Add(path); 
    maxZ++; 
} 

這是問題所在。我試圖創建一個名爲「canvas_TouchDown」的事件,它可以在我觸摸它時檢測指定的圖片,以便它能夠獲得該圖像對象的中心。

List<Image> canvasImages = new List<Image>(); 

private void canvas_TouchDown(object sender, TouchEventArgs e) 
{ 
    foreach (Image canvasImage in canvasImages) 
    { 
     if (canvasImage.AreAnyTouchesCaptured == true) 
     { 
      System.Diagnostics.Debug.WriteLine("I found image that you touch"); 
     } 
    } 
} 

但是,沒有發生任何事情。我也嘗試使用PersistId屬性,但它不起作用。有什麼建議嗎?

方面,

C.Porawat

回答

0

如果要添加圖像到畫布上,觸摸它,並期待在畫布上接收觸摸你會失望的。您應該聽取圖像上的「觸摸」或在畫布上「預覽觸摸」。