SL中利用StoryBoard實作類似html中的Marquee滾動效果,以下是核心代碼:
<Canvas x:Name="c1" Margin="2,25,2,2">
<Canvas.Triggers>
<EventTrigger RoutedEvent="Canvas.Loaded" >
<BeginStoryboard>
<Storyboard x:Name="animation" RepeatBehavior="Forever" >
<DoubleAnimation Storyboard.TargetName="ScrollingUp"
Storyboard.TargetProperty="(Canvas.Top)" From="120" To="0" Duration="0:0:10" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Canvas.Triggers>
<TextBlock x:Name="ScrollingUp" FontWeight="Bold" Foreground="Red" FontSize="12" TextWrapping="Wrap" Height="113">
從下往上滾動的文字
</TextBlock>
</Canvas>
這裡是滾動文字的代碼,主要的就是StoryBoard裡的屬性設定:
Storyboard.TargetProperty="(Canvas.Top)" From="100" To="0" Duration="0:0:10"
同理,其他方向如下設定即可:
Storyboard.TargetProperty="(Canvas.Top)" From="0" To="100" Duration="0:0:10" //從上往下滾動
Storyboard.TargetProperty="(Canvas.Left)" From="0" To="100" Duration="0:0:10" //從左往右滾動
Storyboard.TargetProperty="(Canvas.Left)" From="100" To="0" Duration="0:0:10" //從右往左滾動