Canvas.getleft для возврата изображения 0 в WP7

Я пытаюсь получить позицию изображения на моем холсте. Но Canvas.GetLeft и Canvas.GetTop всегда возвращают 0, хотя я перетаскиваю изображение через холст. Ниже приведен фрагмент кода.

private void MouseDragElementBehavior_DragFinished(object sender, MouseEventArgs e)
 {
 MessageBox.Show("Canvas Left Position" + Canvas.GetLeft(image1).ToString());
 MessageBox.Show("Canvas Top Position" + Canvas.GetTop(image1)).ToString();
 MessageBox.Show("Canvas Index" + Canvas.GetZIndex(image1));
 }

Пожалуйста, дайте мне знать, как решить эту проблему.

1 ответ

MouseDragElementBehavior использует MatrixTransformation, а не верхний и левый свойства холста.

Чтобы получить позицию, вы можете попробовать использовать свойства X и Y для MouseDragElementBehavior:

private void MouseDragElementBehavior_DragFinished(object sender, MouseEventArgs e)
 {
 var behavior = (MouseDragElementBehavior)sender;

 System.Diagnostics.Debug.WriteLine("Position: " + behavior.X + " / " + behavior.Y);
 }

licensed under cc by-sa 3.0 with attribution.