2014-01-05 5 views
1

크기가 480x800 인 이미지가 있다고 가정 해 보겠습니다. 사각형 컨트롤 (크기 480x480)을 사용하여 이미지의 맨 위 부분을 먼저 표시 한 다음 천천히 이미지의 끝으로 수직 스크롤하고 이미지가 도달하면 다시 스크롤 한 다음 다시 아래로 스크롤합니다. 주된 문제는 스크린 전체에 이미지가 있으면 너무 많은 공간을 차지한다는 것입니다. 컨트롤이 이미지 자체보다 작다는 것은 매우 중요합니다.Windows Phone 8에서 이미지의 자동 연속 스크롤

이 컨트롤은 LongListSelector에서 사용되며 클릭하면 전체 이미지가 표시된 새 페이지로 이동하므로 사용자가 이미지를 수동으로 스크롤 할 수 없으므로 컨트롤에서 제공합니다. 그 안에 표시되는 이미지의 스크롤 가능한 미리보기의 일종이며 사용자가 수동으로 스크롤 할 필요가 없습니다.

ScrollViewer에서이 기능을 구현하려고 시도했지만 다른 방법을 찾으려고했지만 작동하지 않는 항목을 찾지 못했습니다. 내 질문은이 지원하는 것이거나 이런 종류의 동작을 지원하는 사용자 지정 컨트롤을 만드는 가장 좋은 방법이 있다면 무엇입니까? 또한 사용자 정의 컨트롤을 사용하여이 작업을 수행하는 방법에 대한 팁이 있다면 정말 감사하겠습니다. 감사.

+0

높이가 더 넓을뿐만 아니라 너비가 큰 이미지에서 일어날 일도 있습니다. 이 경우이 기능은 어떻게 작동해야합니까? –

+0

@RandRandom 이미지의 크기가 조절되어 이미지가 컨트롤에 맞게 조절되고 세로로 스크롤 할 수 있습니다. 그러나 그렇지 않은 경우 항상 동일하게 사용되므로 이미지의 크기는 문제가되지 않습니다. – neits

답변

0

사용자 지정 컨트롤을 만들 필요가 없다는 것을 알아 냈습니다. 더 많은 연구를 통해 적절한 솔루션을 찾아 낼 수있었습니다. ImageBrush를 사용하여 배경으로 설정된 이미지가있는 테두리를 사용하고 자동으로 되돌리고 영원히 반복되는 애니메이션으로 애니메이션을 만들었습니다. 나는 아래에 해결책을 게시 할 것이고 누군가에게 유용 할 것이다.

<Border Height="480" Width="480" Tap="animBegin"> 
    <Border.Resources> 
     <Storyboard x:Name="transformAnimation"> 
      <DoubleAnimation Storyboard.TargetName="transform" 
          Storyboard.TargetProperty="TranslateY" 
          From="0" To="-320" Duration="0:0:5" 
          AutoReverse="True" RepeatBehavior="Forever" /> 
     </Storyboard> 
    </Border.Resources> 
    <Border.Background> 
     <ImageBrush Stretch="UniformToFill" 
        ImageSource="/Assets/sample.jpg" 
        AlignmentY="Top"> 
      <ImageBrush.Transform> 
       <CompositeTransform x:Name="transform" TranslateY="0"/> 
      </ImageBrush.Transform> 
     </ImageBrush> 
    </Border.Background> 
</Border> 
관련 문제