dev*_*os1 10 3d wpf animation scroll credits
我正在为我的应用程序创建一个(可能是3D)滚动信用屏幕,这类似于您在电影结束时可能看到的,但应该能够包括图形,动画等.
这样做的最佳方法是什么?我想我可以创建一个非常高的UserControl,其中包含要滚动的整个内容,然后在ScrollViewer中动画它,甚至只是一个Canvas并为该位置设置动画,但是做这样的事情有明显的性能问题我恐怕太慢了.
如果积分可以在3D表面滚动,有点像星球大战,或者有鱼眼效果,那将会很酷,但我知道在WPF中蹲下3D.
我确实想要某种褪色/ alpha混合,所以学分似乎在底部淡入和/或在顶部淡出,但我也坚持如何做到这一点.*
**实际上,为此我想我可以覆盖一些半透明渐变,只要背景是纯色.*
dev*_*os1 11
好吧,因为没有人似乎有任何评论,我继续前进并做了我描述的事情,并且必须说结果非常好.我使用垂直LinearGradientBrush进行淡入淡出,并简单地为Canvas中的UserControl动画以进行滚动(将Canvas.Top从Canvas的<ActualHeight>动画到(负)UserControl的<ActualHeight>).看起来很不错.:)
这是动画(注意我必须在代码中将DoubleAnimation.To设置为scroller.ActualHeight):
<DoubleAnimation
x:Name="scrollAnim"
BeginTime="0:0:30"
Duration="0:0:30"
From="200"
Storyboard.TargetName="scroller"
Storyboard.TargetProperty="(Canvas.Top)" />
Run Code Online (Sandbox Code Playgroud)
这是scroller元素:
<Canvas
ClipToBounds="True"
x:Name="scrollerCanvas">
<Credits:ScrollingCredits
x:Name="scroller"
Canvas.Top="200"
Width="{Binding ElementName=this, Path=ActualWidth}" />
</Canvas>
Run Code Online (Sandbox Code Playgroud)
(还有一些其他的东西在继续,因此滚动从0:0:30开始.)
这是推子:
<Border
x:Name="border"
Opacity="0">
<Border.Background>
<LinearGradientBrush
StartPoint="0,0"
EndPoint="0,1">
<GradientStop
Offset="0"
Color="Black" />
<GradientStop
Offset="0.2"
Color="#00000000" />
<GradientStop
Offset="0.8"
Color="#00000000" />
<GradientStop
Offset="1"
Color="Black" />
</LinearGradientBrush>
</Border.Background>
</Border>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2453 次 |
| 最近记录: |