0

如何将图像自动移动到我在屏幕上触摸的特定 X、Y 位置?

我曾尝试使用 ManipulationStarted 但这不起作用。

这是我的代码:

XML:

     <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
        <TextBlock x:Name="txttouch" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
        <TextBlock x:Name="txtpoint" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
    </StackPanel>

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="grid1" Grid.Row="1" Margin="12,0,12,0">
        <Image x:Name="imagenew"  Source="1.png" Height="30" Width="30">
            <Image.RenderTransform>
                <TranslateTransform x:Name="transimage"/>
            </Image.RenderTransform>
        </Image>


    </Grid>

  </Grid>

和 C#:

private void ManipulationStartedonGrid(object sender,system.Windows.Input.ManipulationStartedEventArgs e)

        {
            transimage.X = e.ManipulationOrigin.X;
            transimage.Y = e.ManipulationOrigin.Y;
        }
4

2 回答 2

0

ManipulationOrigin显然是操纵的固定起点。您应该使用类似ManipulationDelta http://msdn.microsoft.com/en-us/library/system.windows.uielement.manipulationdelta.aspx

于 2013-06-10T04:17:03.010 回答
0

Canvas 让您有机会明确设置子位置。

<Grid x:Name="grid1" Grid.Row="1" Margin="12,0,12,0">
  <Canvas>
    <Image x:Name="imagenew"  Source="1.png" Height="30" Width="30">
        <Image.RenderTransform>
            <TranslateTransform x:Name="transimage"/>
        </Image.RenderTransform>
    </Image>                             
   </Canvas>
</Grid>

在您需要的代码集坐标中:

Canvas.SetLeft(imagenew, leftCoord);
Canvas.Settop(imagenew, topCoord);
于 2013-06-10T09:56:41.117 回答