WPF: Получить указать изображение от прикосновения - PullRequest
0 голосов
/ 10 января 2011

Я добавил картинку как дочерний слой под названием "холст". По следующему коду:

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, но оно не работает. Есть предложения?

Regard,

C.Porawat

1 Ответ

0 голосов
/ 10 января 2011

Если вы добавляете изображение на холст, касаетесь его и ожидаете, что холст получит прикосновение, вы будете разочарованы.Вы должны либо прослушать «touch down» на изображении, либо «preview touch down» на холсте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...