我想实现这样的效果:
有一个80 * 80的滚动视图,我把160 * 80的图片放在里面
1s:图片在滚动视图中左/上,2s:图片右/上滚动视图中的图片
滚动作为过渡过程
我的代码:
的 XAML
<UserControl.Resources>
<Storyboard x:Name="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="my_combo_pic">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:3" Value="80"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="my_combo_pic">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:3" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</UserControl.Resources>
...
<ScrollViewer x:Name="my_combo" Tap="MyCombolIconTapped" HorizontalAlignment="Right" Height="80" Margin="0" VerticalAlignment="Bottom" Width="80">
<Image x:Name="my_combo_pic" Stretch="Fill" Source="/Images/my_combo_icon.png" RenderTransformOrigin="0.5,0.5" Height="160" Width="80">
<Image.RenderTransform>
<CompositeTransform/>
</Image.RenderTransform>
</Image>
</ScrollViewer>
</Grid>
CS
Storyboard1.Begin();
已加载 中的
但是,我发现即使它在表达式混合中运行良好,动画也不起作用 那么,你能帮我找出原因是什么吗? 或者给我另一种方式来实现这一点 谢谢你!!! 任何建议都会很棒
答案 0 :(得分:1)
将ScrollViewer
内容放在Grid
内,如下所示:
<ScrollViewer>
<Grid>
<Image x:Name="my_combo_pic" Stretch="Fill" Source="/Images/my_combo_icon.png" RenderTransformOrigin="0.5,0.5" Height="160" Width="266">
<Image.RenderTransform>
<CompositeTransform />
</Image.RenderTransform>
</Image>
</Grid>
</ScrollViewer>
这里的问题是动画系统有点混乱,因为ScrollViewer
中只有一个Image
,它本身不是一个容器,所以它认为没有哪里动画(因为它与任何东西都不相关)。