2010-02-25 3 views
2

나는 텍스트 블록 텍스트를 스크롤해야합니다. 예를 들어, 텍스트 블록은 700 단어를 포함합니다. 이 단어들은 일부 "물건"에 따라 다른 700 단어가 될 수 있으므로 코드 블록에서 텍스트 블록으로 채워집니다. 이 양식에도 텍스트 상자가 있습니다. 사용자는 텍스트 상자에있는 단어를 텍스트 상자에 입력합니다. 그들이 입력 할 때 나는 그들이있는 텍스트 블록에서 어떤 단어를 추적합니다. 그러나 텍스트 블록의 모든 단어가 텍스트 블록보기 영역에 들어갈 수는 없으므로 코드 뒤에있는 텍스트 블록을 스크롤해야합니다. 어떻게해야합니까?Silverlight 3 코드에서 스크롤 텍스트 블록

I "m 사용 실버 3.

이에 ... 몇 가지 코드를 넣어 유용 할 수 있습니다 감사합니다 섀넌

는 여기에서 ScrollViewer 및 텍스트 블록 스타터

  <ScrollViewer x:Name="svSourceText" Width="591" MaxHeight="202" VerticalScrollBarVisibility="Auto"> 

       <TextBlock Height="202" Width="591" TextWrapping="Wrap" 
       x:Name="txtSource" FontSize="12" FontFamily="Fonts/Fonts.zip#Consolas" LineHeight="21.333" 
          /> 

     </ScrollViewer> 

에게 있습니다. .txtSource에 텍스트를 추가하면 스크롤 뷰어가 스크롤 막대를 필요한 높이로 변경하지 않습니다.

답변

1

TextBlock i 스크롤 뷰어. 사용자가 TextBox에 텍스트를 입력하면 이벤트를 캡처합니다. 현재 캡처 된 단어가 유효한지 확인한 다음 TextBlock을 스크롤하십시오.

다음은 예입니다. 사용자가 스페이스 바를 누를 때마다 스크롤됩니다. 입력되는 단어의 유효성을 확인하고자 할 것입니다.

XAML :

<Grid x:Name="LayoutRoot"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="25" /> 
     <RowDefinition Height="40" /> 
    </Grid.RowDefinitions> 

    <TextBox Name="txtInput" KeyUp="TextBox_KeyUp" Width="200" Grid.Row="0" /> 

    <ScrollViewer Name="scrollViewer" Grid.Row="1" MaxHeight="25" MaxWidth="250" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Hidden">    
     <TextBlock> 
      One 
      <LineBreak /> 
      Two 
      <LineBreak /> 
      Three 
      <LineBreak /> 
      Four 
      <LineBreak /> 
      Five 
     </TextBlock> 

    </ScrollViewer> 


</Grid> 

그리고 이벤트 '의 keyup'에 대한 코드 :

 private void TextBox_KeyUp(object sender, KeyEventArgs e) 
    { 
     if (e.Key.ToString().ToLower() == "space") 
     { 
      scrollViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset + 15); 
     } 
    } 
+0

고마워. 나는 그 라인을 따라 뭔가를했다. .. 나는 더 잘할 수있다. – jvcoach23

0

그냥 생각, 당신은 AutoCompleteBox 컨트롤을 사용하여 고려 했는가?

모든 현재 단어가 포함되어 있고 필요에 따라 단어를 추가하거나 제거 할 수있는 ObservableCollection<string>에 ItemsSource를 바인딩 할 수 있습니다.

사용자가 자동 ​​완성의 텍스트 상자 영역에 입력 할 때 일치하는 단어 집합이 드롭 다운에 나타납니다.

아마도 당신은 다른 것을하고 있습니다 만, 휠체어를 다시 발명하려고하는 경우에 대비하여이 글을 게시 할 것이라고 생각했습니다.