2011-09-01 4 views
2

으로 스크롤 한 상태로 둡니다. 어리석은 질문 일 수도 있지만, ScrollViewer에 중첩 된 간단한 TextBlock이 있습니다. 사용자가 위로 스크롤하면 내용이 이동하지만 스크롤을 중지하고 손가락을 제거하면 기본 위치로 다시 스냅됩니다. 텍스트 블록이 뒤로 스크롤되지 않고 스크롤 된 위치에 있도록 ScrollViewer를 설정하려면 어떻게해야합니까?WP7 ScrollViewer - 뷰어를

<ScrollViewer> 
     <TextBlock Height="500" HorizontalAlignment="Left" Margin="130,529,0,0" Name="statusTextBlock" Text="TextBlock" VerticalAlignment="Top" Width="298" TextWrapping="Wrap" /> 
</ScrollViewer> 

많은 감사!

는 편집 :

제안을 바탕으로, 나는 그리드에있는 ScrollViewer를 감쌌다. 이것은 도움이되지 않았습니다 - 스크롤 동작에서 손가락을 떼면 텍스트가 원래 위치로 계속 스냅됩니다.

<ScrollViewer Margin="130,540,0,0"> 
     <Grid Height="500" > 
       <TextBlock HorizontalAlignment="Left" Name="statusTextBlock" Text="TextBlock" VerticalAlignment="Top" TextWrapping="Wrap" /> 
     </Grid> 
</ScrollViewer> 
+0

편집 할 때 TextBlock을 ScrollViewer가 아닌 Grid에 래핑했습니다. –

답변

1

Grid에서 TextBlock을 감싸고 Grid에서 필요한 경우 높이를 설정하십시오. 또한 TextBlock에 정적 폭을 사용하지 않는 것이 좋습니다. 특히 Wrapping을 사용하지 않을 때. 미래의 화면 크기를 고려하지 않은 것은 나쁜 것입니다. 나는이 문제를 다시 만듭니다 수 없습니다

<ScrollViewer> 
    <Grid Height="500"> 
     <TextBlock HorizontalAlignment="Left" Margin="130,529,0,0" Name="statusTextBlock" Text="TextBlock" VerticalAlignment="Top" Width="298" TextWrapping="Wrap" /> 
    </Grid> 
</ScrollViewer> 

업데이트. 다음은 괜찮은 예제입니다.

<Grid x:Name="ContentPanel" 
     Grid.Row="1" 
     Margin="12,0,12,0"> 
    <ScrollViewer> 
     <Grid> 
      <TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. In sagittis auctor quam ac dictum. Nam tincidunt nisl id turpis dignissim fringilla. Sed elementum euismod fringilla. Etiam sem sem, congue at euismod ut, blandit vitae metus. Sed venenatis rutrum elit sed vestibulum. Etiam nec tempus massa. Pellentesque leo velit, laoreet nec pulvinar non, tempor et felis. Nunc at pulvinar ipsum. Nullam id lorem id augue viverra elementum sed vitae nibh. Nunc pulvinar purus a est porttitor sit amet rutrum mi eleifend. Praesent vitae urna non est volutpat mattis. Nulla sit amet mollis lectus. In hac habitasse platea dictumst. Duis viverra, lacus ut sollicitudin auctor, lacus velit elementum turpis, a faucibus nibh velit sed ipsum. Vivamus laoreet purus consectetur dui faucibus in ornare lacus congue. Suspendisse laoreet leo laoreet nisl fermentum ut tempus urna placerat. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aenean sit amet quam odio. Quisque eu mattis mauris. Maecenas congue diam quis magna dignissim a facilisis lectus aliquam. Nunc tristique odio id velit pretium eu scelerisque velit dictum. Cras eget purus massa. Suspendisse potenti. Duis at egestas nunc. Nullam vehicula urna eget neque interdum pellentesque. Nulla non nisl ipsum. Vestibulum congue viverra felis quis congue. Duis sodales, odio vitae aliquam euismod, dolor augue iaculis quam, non hendrerit felis metus quis purus. Suspendisse fringilla vulputate tellus ac consequat. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Phasellus pulvinar accumsan luctus. Nunc vel orci purus, sollicitudin hendrerit orci. Nam commodo, massa volutpat venenatis eleifend, tortor velit tincidunt metus, at molestie felis neque non est. Curabitur lorem est, ullamcorper quis pellentesque et, consequat a tortor. Duis at lorem et erat pretium ultrices. Sed fringilla neque nec ante interdum ultricies. In facilisis augue eget nisi porttitor in semper risus vulputate. Suspendisse id mi velit. Pellentesque in libero ac neque ullamcorper vulputate interdum pharetra ligula. Pellentesque ac diam justo. Maecenas augue est, tincidunt vel lobortis in, condimentum nec felis. Morbi sodales luctus velit, in fringilla augue consectetur sed. Pellentesque ut sodales augue. Etiam et sem lacus. Nullam at erat lectus, lobortis vulputate augue. Curabitur nec risus blandit libero ornare posuere quis ac mi. Quisque sed odio tellus, eu vehicula dolor. Aenean luctus pellentesque rhoncus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eget augue quis ligula adipiscing molestie. Suspendisse ac dictum lorem. Vivamus lacus diam, tincidunt ut sagittis non, consectetur ut magna. Maecenas lectus lectus, suscipit vitae commodo nec, mollis id nibh. Curabitur venenatis posuere ipsum, nec tincidunt tortor pulvinar vel. Vestibulum metus tortor, gravida eu lacinia ut, mattis sed ante. In eu justo id arcu consectetur molestie. Praesent mattis scelerisque mauris, ac porttitor velit malesuada quis. Etiam elementum sem a eros aliquam venenatis eget in tortor. Pellentesque a risus libero. Donec erat diam, porta id blandit vel, vulputate ac diam." 
         TextWrapping="Wrap" /> 
     </Grid> 
    </ScrollViewer> 
</Grid> 
+0

안녕 클로스, 그래서 그것을 시도했다. Grid에서 Height 속성을 지정하면 텍스트 상자가 더 이상 캔바스에 표시되지 않고 사라집니다. Grid에서 높이 특성을 제거하면 텍스트 상자가 다시 나타납니다. 그러나 스크롤은 이전과 똑같습니다. 즉, 스크롤을 끝내고 손가락을 뗀 후에 다시 원래 위치로 스냅됩니다. 왜 그런가? 고마워요 ... –

+0

좋아, 내가 텍스트 상자가 아닌 그리드에 여백 속성을 추가하여 사라지는 텍스트 상자를 고쳤습니다 ... 이제는 올바른 위치에 모두 나타납니다 -하지만 스크롤은 여전히 ​​orignal 위치로 다시 스냅 ... 위의 코드를 업데이트합니다. –

+0

여기에서 문제를 다시 만들 수 없습니다. Lorem Ipsum으로 업데이트 된 예제를 참조하십시오, 잘 작동합니다. 전혀 물러서지 않습니다. 다른 코드와 관련이 있어야합니다. 새 프로젝트를 만들고 게시 한 코드를 사용하여 정상적으로 작동하는지 확인하십시오. –

2

여기서 TextBlock과 관련된 문제는 발견되지 않았습니다. 내 장치가 Mango 빌드로 업데이트되고 Windows Phone SDK 7.1 RC가 내 컴퓨터에 설치됩니다.