uwp 获取当前点图像

uwp GetcurrentPoint image

我正在编写移动图像的代码。有用。 我需要移动后的绝对 x, y 我怎么才能得到它们? 谢谢你 我的代码只给我相对点。 :

 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;

不确定你想做什么。如果你只是想获取图像的绝对位置。您可以使用 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);
    }