none
Перемещение картинки в WPF RRS feed

  • Вопрос

  • Помогите разобраться.
    Каким образом создать картинку и анимировать её ? (переместить по координатам)

    Во первых не получается программно создать картинку (только в xaml редакторе) и при её перемещении:

    DoubleAnimation ta = new DoubleAnimation();
    ta.From = 0;
    ta.To = 100;
    ta.Duration = new Duration(TimeSpan.FromSeconds(1));
    img1.BeginAnimation(Button.WidthProperty, ta);

    ...она просто расползается.

    В winforms достаточно было у pictureBox координаты поменять, а тут никак не разберусь(

    24 октября 2013 г. 8:33

Ответы

Все ответы

  • В WPF немного другая идеология, если вы хотите что бы перемещались контролы по поставьет canvas а на него уже кнопку и тогда сможете передвигать по его воверхности, своества Canvas.Left и Canvas.Top

    А так вы и прикрутили изменение ширины кнопки а не ее положение

    24 октября 2013 г. 9:40
  • Ну можно ещё сво-во Margin менять. Но человек вам написал правильно - любые действия по изменению расположения объекта нужно делать в системе координа, т.е. в Canvas. Единственное - только смотрите относительно какого объекта вы получаете координаты.
    24 октября 2013 г. 17:37
  • Спасибо за ответ.

    Только что-то не выходит:

            <Canvas Height="100" HorizontalAlignment="Left" Margin="256,158,0,0" Name="canvas1" VerticalAlignment="Top" Width="200">
                <Button Canvas.Left="61" Canvas.Top="39" Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" />
            </Canvas>

            private void button1_Click(object sender, RoutedEventArgs e)
            {
                Canvas.SetLeft(canvas1, 100);
            }

    И собственно ничего не происходит...

    25 октября 2013 г. 7:30
  • а если так

        private void button1_Click(object sender, RoutedEventArgs e)
            {
                Canvas.SetLeft(button1, 100);
            }

    25 октября 2013 г. 7:37
  • Спасибо!)

    Подскажите ещё 1 момент, как программно создавать картинки и добавлять в этот канвас ? (через child add чтоли как-то ?)

    25 октября 2013 г. 8:17
  • Canvas can = new Canvas();
                Image img = new Image();
                can.Children.Add(img);
                Canvas.SetLeft(img, 100);
    25 октября 2013 г. 8:28