2017-02-25 82 views
0

我在寫一個移動圖像的代碼。有用。 我需要移動後的絕對x,y 我怎麼得到它們? 謝謝 我的代碼只給我相關的幾點。 :uwp GetcurrentPoint圖像

private static void MyImage_PointerMoved(object sender, PointerRoutedEventArgs e) 
    { 
     Pointer ptr = e.Pointer; 
     if (ptr.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse) 
     { 
      // To get mouse state, we need extended pointer details. 
      // We get the pointer info through the getCurrentPoint method 
      // of the event argument. 
      Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(micky.MyImage); 
      var transform = (micky.MyImage.RenderTransform as CompositeTransform); 
      double imagex = e.GetCurrentPoint(micky.MyImage).Position.X; 
      double imageY = e.GetCurrentPoint(micky.MyImage).Position.Y; 

回答

0

不知道你想要做什麼。如果你只是想獲得圖像的絕對位置。您可以使用TransformToVisualTransformPoint方法。

<Image x:Name="pic" Source="Assets/1.jpg"/> 
var trans = pic.TransformToVisual(Window.Current.Content); 
Point position = trans.TransformPoint(new Point(0, 0)); 

但我檢查你的代碼,我猜你想要移動的圖像。如果是這樣,使用Manipulation事件應該符合你的目標。

<Image x:Name="pic" Source="Assets/1.jpg" ManipulationMode="All" ManipulationDelta="Image_ManipulationDelta" Height="100" Width="200"> 
     <Image.RenderTransform> 
      <TranslateTransform x:Name="translateTransform"></TranslateTransform> 
     </Image.RenderTransform> 
</Image> 
private void Image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) 
    { 
     translateTransform.X += e.Delta.Translation.X; 
     translateTransform.Y += e.Delta.Translation.Y; 
     System.Diagnostics.Debug.WriteLine("Manipulation: X: " + translateTransform.X + ", Y: " + translateTransform.Y); 
    }