восстановление изображения в том же положении после захоронения в WP7 - PullRequest
0 голосов
/ 08 февраля 2012

Я использую MouseDragElementBehavior в своем приложении WP7 для перетаскивания изображения вниз по холсту. Я могу получить координаты (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>

1 Ответ

0 голосов
/ 08 февраля 2012

Сначала 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">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...