2016-10-18 3 views
1

UWP 앱의 TextBox 하단까지 어떻게 스크롤합니까?UWP C# TextBox 하단까지 스크롤

UWP로 전환하면서이 문제는 간단하지 않았습니다. 사람이 UWP 응용 프로그램에서 텍스트 상자의 하단으로 스크롤 할 필요가있는 경우이 UWP 애플 리케이션

답변

2

을 작동하지 않습니다,

textBox.SelectionStart = textBox.TextLength; 
textBox.ScrollToCaret(); 

:하지만

나는이 사용할 수 있도록 사용

을 textBox1 당신이 사우스 캐롤라이나에 원하는 텍스트 상자입니다

https://code.msdn.microsoft.com/windowsapps/How-to-scroll-to-the-a8ea5867

private void TextBox_TextChanged(object sender, TextChangedEventArgs e)  
{  
    var grid = (Grid)VisualTreeHelper.GetChild(textBox1, 0);  
    for (var i = 0; i <= VisualTreeHelper.GetChildrenCount(grid) - 1; i++)  
     {  
      object obj = VisualTreeHelper.GetChild(grid, i);  
      if (!(obj is ScrollViewer)) continue;  
      ((ScrollViewer)obj).ChangeView(0.0f, ((ScrollViewer)obj).ExtentHeight, 1.0f);  
      break;  
     }  
    } 
} 

바닥에 굴러 라.

0

https://code.msdn.microsoft.com/windowsapps/How-to-scroll-to-the-a8ea5867의 대답을 사용하면 위로 스크롤 할 때 줄이 삭제되는 경우가 있습니다.

이 문제를 해결하려면,이 시도 : 나는 반드시 싶지 않았기 때문에,

((ScrollViewer)obj).ChangeView(0.0f, ((ScrollViewer)obj).ExtentHeight, 1.0f, true); 

가 나는 또한 이벤트 처리기에서 방법을 분리 :

private void ScrollToBottom(TextBox textBox) 
{ 
    var grid = (Grid)VisualTreeHelper.GetChild(textBox, 0); 
    for (var i = 0; i <= VisualTreeHelper.GetChildrenCount(grid) - 1; i++) 
    { 
     object obj = VisualTreeHelper.GetChild(grid, i); 
     if (!(obj is ScrollViewer)) continue; 
     ((ScrollViewer)obj).ChangeView(0.0f, ((ScrollViewer)obj).ExtentHeight, 1.0f, true); 
     break; 
    } 
} 

가장 큰 차이점은이 라인 텍스트가 변경 될 때마다 스크롤합니다.