誰もコメントしていないように見えるので、私は先に進み、私が説明したように物事を行い、結果はかなり良いと言わざるを得ません. 垂直方向の LinearGradientBrush を使用してフェードを行い、スクロールのために Canvas 内の UserControl を単純にアニメーション化しました (Canvas.Top を <ActualHeight of Canvas> から (負の)<ActualHeight of UserControl> にアニメーション化)。かなり良さそうです。:)
これがアニメーションです(コードで 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>