locked
[wp7] Обработчик для жеста Flick. RRS feed

  • Вопрос

  • попробовал сделать, как тут http://www.wintellect.com/CS/blogs/jprosise/archive/2011/01/20/building-touch-interfaces-for-windows-phones-part-4.aspx

    а конкретно, как

     

    <Grid x:Name="ContentPanel" Width="2048" Height="480">
        <Image Source="Dubai.jpg" Width="2048" Height="480" CacheMode="BitmapCache">
            <toolkit:GestureService.GestureListener>
                <toolkit:GestureListener DragDelta="OnDragDelta"
                    Flick="OnFlick" DoubleTap="OnDoubleTap" />
            </toolkit:GestureService.GestureListener>
            <Image.RenderTransform>
                <TranslateTransform x:Name="PanTransform"/>
            </Image.RenderTransform>
            <Image.Resources>
                <Storyboard x:Name="Pan">
                    <DoubleAnimation x:Name="PanAnimation"
                        Storyboard.TargetName="PanTransform"
                        Storyboard.TargetProperty="X" Duration="0:0:1">
                        <DoubleAnimation.EasingFunction>
                            <CircleEase EasingMode="EaseOut" />
                        </DoubleAnimation.EasingFunction>
                    </DoubleAnimation>
                </Storyboard>
            </Image.Resources>
        </Image>
    </Grid>
    

    private void OnFlick(object sender, FlickGestureEventArgs e)
    {
        Image photo = sender as Image;
     
        // Compute the inertial distance to travel
        double dx = e.HorizontalVelocity / 10.0;
        TranslateTransform transform = photo.RenderTransform as TranslateTransform;
     
        double x = transform.X + dx;
     
        if (x > 0.0)
            x = 0.0;
        else if (x < Application.Current.Host.Content.ActualHeight - photo.ActualWidth)
            x = Application.Current.Host.Content.ActualHeight - photo.ActualWidth;
     
        // Apply the computed value to the animation
        PanAnimation.To = x;
     
        // Trigger the animation
        Pan.Begin();
    }
    

     


    попробовал сделать то же самое для CompositeTransform (композит нужен одновременно и для зума) , что бы движение было по x и по y, но у меня  ниче не вышло - анимация совершенно не адвекватно работает и по неопытности я не знаю, как заставить её работать адекватно)

    если у кого-нибудь есть опыт, поделитесь)


    • Изменено K_K 17 декабря 2011 г. 19:33
    17 декабря 2011 г. 19:32

Все ответы

  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]
    29 декабря 2011 г. 12:53