Панорамирование на Windows Phone 8 не работает

Итак, у меня есть приложение с селектором длинных списков, половина текста исчезает с экрана, поэтому я пытался панорамировать его, когда пользователь щелкает экран. Это код, который я до сих пор...

C#:

private void RouteLLS_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    if (e.DeltaManipulation.Scale.X == 0.0 && e.DeltaManipulation.Scale.Y == 0.0) 
    {
        LongListSelector longListSelector = (LongListSelector)sender;
        TranslateTransform transform = (TranslateTransform)longListSelector.RenderTransform;

        double x = transform.X + e.DeltaManipulation.Translation.X;
        if (x > 0.0)
        {
            x = 0.0;
        }
        else if (x < Application.Current.Host.Content.ActualWidth - longListSelector.ActualWidth) 
        {
            x = Application.Current.Host.Content.ActualWidth - longListSelector.ActualWidth;
        }
        transform.X = x;
    }
}

private void RouteLLS_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
    if (e.IsInertial) 
    {
        LongListSelector longListSelector = (LongListSelector)sender;

        TranslateTransform transform = (TranslateTransform)longListSelector.RenderTransform;

        double dx = e.FinalVelocities.LinearVelocity.X / 10.0;

        double x = transform.X + dx;

        if (x > 0.0) 
        {
            x = 0.0;
        }
        else if (x < Application.Current.Host.Content.ActualWidth - longListSelector.ActualWidth) 
        {
            x = Application.Current.Host.Content.ActualWidth - longListSelector.ActualWidth;
        }
        panAnimation.To = x;
        Pan.Begin();
    }
}

И это XAML для анимации...

<phone:LongListSelector  x:Name="RouteLLS" Grid.Row="3" Background="Transparent" ItemTemplate="{StaticResource routing}" LayoutMode="List" 
  IsGroupingEnabled="False" ManipulationDelta="RouteLLS_ManipulationDelta" ManipulationCompleted="RouteLLS_ManipulationCompleted">
    <phone:LongListSelector.RenderTransform>
        <TranslateTransform x:Name="pan"/>
    </phone:LongListSelector.RenderTransform>
    <phone:LongListSelector.Resources>
        <Storyboard x:Name="Pan">
            <DoubleAnimation x:Name="panAnimation"
                             Storyboard.TargetName="pan"
                             Storyboard.TargetProperty="X"
                             Duration="0:0:1"
                             >
                <DoubleAnimation.EasingFunction>
                    <CircleEase EasingMode="EaseOut"/>
                 </DoubleAnimation.EasingFunction>                            
             </DoubleAnimation>   
         </Storyboard>
     </phone:LongListSelector.Resources>
 </phone:LongListSelector>

Я не получаю сообщение об ошибке при касании экрана или чего-либо еще, поэтому я не совсем уверен, что я делаю неправильно. Разве вам просто не разрешено делать подобные вещи в длинном списке? любая помощь приветствуется, спасибо заранее!

1 ответ

Решение

Итак, я исправил проблему. В теге элемента LongListSelector я забыл установить ширину, чтобы не было "фактической ширины" для него

Другие вопросы по тегам