2011-12-04 7 views
3

Silverlight 응용 프로그램에서 스크롤하는 움직이는 문자를 만들어야합니다. 선택 윤곽은 오른쪽에서 왼쪽으로 스크롤해야합니다. 스크롤을 끝내면 자동으로 다시 시작해야합니다. 트릭은 항목이 스크롤 될 때 목록에 항목이 추가 될 때 ItemsControl을 사용해야한다는 것입니다. 나는 이것을 수행하는 방법에 대한 단서가 없으며 이것을 입증 할 수있는 온라인 컨트롤이 있다고 가정했다. 그러나, 나는 하나를 찾는 데 성공하지 못했습니다. 누구든지 기존 컨트롤에 대해 알고 있거나이를 수행하는 방법을 알고 있습니까?Silverlight에서 움직이는 움직이는 문자

감사합니다.

답변

0

간단한 마키를 작성하는 방법에 대한 아이디어입니다. ItemsControl의 측정 너비 (ActualWidth)로 "from"및 "to"를 계산하고 스토리 보드 지속 시간을 계산해야합니다. 하드 코딩 된 항목 대신 바인딩을 사용하십시오.

<ScrollViewer Width="Auto" 
       Height="Auto" 
       BorderThickness="0" 
       HorizontalContentAlignment="Stretch" 
       VerticalContentAlignment="Stretch" 
       VerticalScrollBarVisibility="Disabled" 
       Margin="0" 
       Padding="0"> 
       <Canvas> 
        <Canvas.Resources> 
         <Storyboard x:Name="Anim"> 
          <DoubleAnimation From="480" To="-480" Storyboard.TargetName="Marquee" 
              Duration="0:0:10" 
              RepeatBehavior="Forever" 
              Storyboard.TargetProperty="(Canvas.Left)"/> 
         </Storyboard> 
        </Canvas.Resources> 
        <ItemsControl Canvas.Left="0" Name="Marquee"> 
         <ItemsControl.ItemsPanel> 
          <ItemsPanelTemplate> 
           <StackPanel Orientation="Horizontal"/> 
          </ItemsPanelTemplate> 
         </ItemsControl.ItemsPanel> 
         <ItemsControl.Items> 
          <TextBlock Text="Item1" Margin="10 0 0 0"/> 
          <TextBlock Text="Item2" Margin="10 0 0 0"/> 
          <TextBlock Text="Item3" Margin="10 0 0 0"/> 
          <TextBlock Text="Item4" Margin="10 0 0 0"/> 
         </ItemsControl.Items> 
        </ItemsControl> 
       </Canvas> 
    </ScrollViewer>