【问题标题】:Scrolling credits screen in WPF... ideas?在 WPF 中滚动学分屏幕......想法?
【发布时间】:2010-10-01 22:48:30
【问题描述】:

我正在为我的应用创建一个(可能是 3D)滚动字幕屏幕,这类似于您在电影结尾可能看到的屏幕,但应该能够包含图形、动画等。

执行此操作的最佳方法是什么?我想我可以创建一个非常高的用户控件,其中包含要滚动的全部内容,然后在 ScrollViewer 中对其进行动画处理,甚至只是在 Canvas 中对位置进行动画处理,但是这样做会出现明显的性能问题,我恐怕会太慢。

如果演职员表可以在 3D 表面上滚动,有点像星球大战,或者带有鱼眼效果,那就太酷了,但我知道 WPF 中的 3D。

我确实想要某种淡入淡出/alpha 混合,以便字幕看起来在底部淡入和/或在顶部淡出,但我也坚持如何做到这一点。*

**实际上,我想我可以叠加一些半透明的渐变,只要背景是纯色。*

【问题讨论】:

    标签: wpf animation 3d scroll credits


    【解决方案1】:

    好吧,既然似乎没有人拥有任何 cmets,我就继续按照我描述的方式进行操作,并且必须说结果非常好。我使用垂直 LinearGradientBrush 进行淡入淡出,并简单地为 Canvas 内的 UserControl 设置动画以进行滚动(将 Canvas.Top 从 设置为 (negative))。看起来还不错。 :)

    这是动画(注意我必须在代码中将 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)" />
    

    这是scroller 元素:

    <Canvas
    ClipToBounds="True"
    x:Name="scrollerCanvas">
    <Credits:ScrollingCredits
        x:Name="scroller"
        Canvas.Top="200"
        Width="{Binding ElementName=this, Path=ActualWidth}" />
    </Canvas>
    

    (还有其他一些事情发生,因此滚动从 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>
    

    【讨论】:

    • ScrollingCredits 是什么样的?没有它,剩下的代码就没有意义了。
    • 哦,它只是一个非常简单的 UserControl,由一个大的 TextBlock 组成……它可以是任何东西。
    【解决方案2】:

    您可以使用 VisualBrush 在 3d 表面上“绘制”您的信用用户控件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多