【发布时间】:2015-04-09 08:41:41
【问题描述】:
我需要通过点击和滑动将图像移动到画布上。我怎样才能做到这一点。我尝试了以下。图像在移动,但不是随着用户移动。
XAML
<Canvas Background="White">
<Image Name="img" Width="200" Height="200" Source="Assets/11.png" ManipulationMode="All" ManipulationStarted="img_ManipulationStarted" ManipulationDelta="img_ManipulationDelta"/>
</Canvas>
C#
private Point initialPt;
private void img_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
initialPt = e.Position;
}
private void img_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
Point currentPt = e.Position;
double x = currentPt.X - initialPt.X;
double y = currentPt.Y - initialPt.Y;
if (x != 0 || y != 0)
{
TranslateTransform posTransform = new TranslateTransform();
posTransform.X = currentPt.X;
posTransform.Y = currentPt.Y;
img.RenderTransform = posTransform;
e.Complete();
}
}
【问题讨论】:
-
e.Position相对于 Image 控件,但您希望相对于 Canvas 计算移动。您应该将事件处理程序附加到 Canvas 而不是 Image。 -
看看这个post 来移动和缩放图像。它很旧,但应该仍然可以工作
-
以下问题将提供更准确的方法:stackoverflow.com/questions/27942691/…
标签: c# xaml canvas windows-store-apps