2011-02-24 2 views
1

스크롤하는 텍스트 줄이 있는데 텍스트가 끝난 직후에 같은 텍스트가 시작됩니다. 어떤 아이디어?루프 된 TranslateTransform을 만드는 방법은 무엇입니까?

UPD 텍스트는 현재 애니메이션 코드는 다음과 같습니다 (변경되지 않음) 정적 :

    <EventTrigger RoutedEvent="FrameworkElement.Loaded"> 
        <BeginStoryboard> 
         <Storyboard RepeatBehavior="Forever"> 
          <DoubleAnimation From="200" To="-200" Storyboard.TargetName="translate" 
           Storyboard.TargetProperty="Y" Duration="0:0:5" /> 
         </Storyboard> 
        </BeginStoryboard> 

그것은 작품을 좋아하지만 끝에 도달하면 바보 (그리고 시작으로 다시 이동). 나는 이것을 피할 필요가있다.

+0

텍스트 정적 (고정 길이)가 없을 것이다? 현재 텍스트를 애니메이션화하기 위해 어떤 코드를 사용하고 있습니까? – foson

답변

2

텍스트 길이가 정적 인 경우이를 수행하는 가장 쉬운 방법은 원본 텍스트와 같은 위치에 여러 개의 텍스트 사본을 만들어 복사/복사 애니메이션을 적용하는 것입니다. 당신이 애니메이션 루프이 방법이 경우, "바보"

<UserControl 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 
x:Class="SilverlightApplication3.MainPage" 
Width="200" Height="480"> 
<UserControl.Resources> 
    <Storyboard x:Name="TextScrollStoryboard"> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="offscreenTextBlock" RepeatBehavior="Forever"> 
      <EasingDoubleKeyFrame KeyTime="0" Value="-200"/> 
      <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/> 
     </DoubleAnimationUsingKeyFrames> 
     <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="textBlock" RepeatBehavior="Forever"> 
      <EasingDoubleKeyFrame KeyTime="0" Value="0"/> 
      <EasingDoubleKeyFrame KeyTime="0:0:2" Value="200"/> 
     </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 
</UserControl.Resources> 

<i:Interaction.Triggers> 
    <i:EventTrigger> 
     <ei:ControlStoryboardAction Storyboard="{StaticResource TextScrollStoryboard}"/> 
    </i:EventTrigger> 
</i:Interaction.Triggers> 

<Grid x:Name="LayoutRoot" Background="#FFBBBBBB"> 
    <TextBlock x:Name="textBlock" Text="This is some text" RenderTransformOrigin="0.5,0.5" > 
     <TextBlock.RenderTransform> 
      <CompositeTransform TranslateX="0"/> 
     </TextBlock.RenderTransform> 
    </TextBlock> 
    <TextBlock x:Name="offscreenTextBlock" Text="This is some text" RenderTransformOrigin="0.5,0.5" > 
     <TextBlock.RenderTransform> 
      <CompositeTransform TranslateX="-200"/> 
     </TextBlock.RenderTransform> 
    </TextBlock> 
</Grid> 

1

속성 "RepeatCount"를 확인하십시오 (메모리가 나를 올바르게 서비스하는 경우). 무한대로 설정할 수 있습니다.

+0

정말 루프되지 않습니다. 그냥 끝에서 시작으로 점프 할 것이고, "얼간이"가됩니다. – user626528

+0

그래요,하지만 이것으로 제가 들었던 반복 된 애니메이션을 만들 수있는 유일한 방법입니다 - 뒤에서 코드를 사용하지 않고 – Maciek

관련 문제