所以我有一个带有长列表选择器的应用程序,一半文本离开屏幕,所以我试图在用户轻弹屏幕时将其平移。这是我到目前为止的代码......
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>
当我触摸屏幕或其他任何东西时,我没有收到错误,所以我不完全确定我做错了什么。除非你不允许在长列表选择器上做这种事情?任何帮助表示感谢,提前谢谢!
答案 0 :(得分:0)
好的,所以我解决了这个问题。在LongListSelector元素标签中,我忘了设置一个宽度,所以没有&#34;实际宽度&#34;为它