将图像恢复到WP7中墓碑后的相同位置

本文关键字:位置 墓碑 图像 恢复 WP7 | 更新日期: 2023-09-27 18:23:39

我在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;
    }

我已经存储并检索了隔离存储中的值,以进行tombstoning。

    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();
    }

现在,我想使用这些值将图像定位在与tombstoning之前相同的坐标处。我不知道如何用提供的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>

将图像恢复到WP7中墓碑后的相同位置

首先,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">