我在WP7应用程序中使用MouseDragElementBehavior将图像拖到画布上。我可以在图像拖动后获得坐标(X,Y位置)。但我想在墓碑之后保留相同的图像位置。
private void MouseDragElementBehavior_Dragging(object sender, MouseEventArgs e)
{
Point currentPos = e.GetPosition(image1);
if (currentPos.X < 190)
{
double targetOffset = 700;
DoubleAnimation animation = new DoubleAnimation();
animation.EasingFunction = new CircleEase();
animation.Duration = new Duration(new TimeSpan(0, 0, 10));
animation.From = TextScroll.AnimatableOffset;
animation.To = targetOffset;
Storyboard.SetTarget(animation, TextScroll);
Storyboard.SetTargetProperty(animation, new PropertyPath("(AnimatableScrollViewer.AnimatableOffset)"));
Storyboard storyboard = new Storyboard();
storyboard.Children.Add(animation);
storyboard.Begin();
}
App app = (App)Application.Current;
app.current_X = currentPos.X.ToString();
app.current_Y = currentPos.Y.ToString();
TextScroll.AnimatableOffset = -700;
}
我已经从隔离存储中存储并重新获取了用于墓碑的值。
private void LoadSettings()
{
var settings = IsolatedStorageSettings.ApplicationSettings;
current_X = settings["Xpos"].ToString();
current_Y = settings["Ypos"].ToString();
}
private void SaveSettings()
{
var settings = IsolatedStorageSettings.ApplicationSettings;
settings.Add("Xpos", current_X);
settings.Add("Ypos",current_Y);
settings.Save();
}
现在我想使用这些值将图像定位在与逻辑删除之前相同的坐标上。我不知道如何使用提供的X和Y坐标来定位图像。
这是我使用图像的XAML代码。
<Canvas Margin="12,0,3,-834" Grid.Row="1">
<Image Height="800" Source="37.jpg" Stretch="Fill" Width="480" Canvas.Left="-11" x:Name="image1">
<i:Interaction.Behaviors>
<el:MouseDragElementBehavior ConstrainToParentBounds="True" Dragging="MouseDragElementBehavior_Dragging" />
</i:Interaction.Behaviors>
</Image>
</Canvas>
答案 0 :(得分:0)
首先,Point currentPos = e.GetPosition(image1);
获取鼠标相对于图像的位置。也许你想获得相对于画布的位置?
或者,您可以使用它来获取画布中的位置:
canvas1.GetLeft(image1);
canvas1.GetTop(image1);
然后,您可以在画布中设置某些内容的位置,如下所示:
canvas1.SetLeft(image1, x);
canvas1.SetTop(image1, y);
要做到这一点,你需要命名你的画布:
<Canvas x:Name="canvas1" Margin="12,0,3,-834" Grid.Row="1">