UWP 앱의 TextBox 하단까지 어떻게 스크롤합니까?UWP C# TextBox 하단까지 스크롤
UWP로 전환하면서이 문제는 간단하지 않았습니다. 사람이 UWP 응용 프로그램에서 텍스트 상자의 하단으로 스크롤 할 필요가있는 경우이 UWP 애플 리케이션
UWP 앱의 TextBox 하단까지 어떻게 스크롤합니까?UWP C# TextBox 하단까지 스크롤
UWP로 전환하면서이 문제는 간단하지 않았습니다. 사람이 UWP 응용 프로그램에서 텍스트 상자의 하단으로 스크롤 할 필요가있는 경우이 UWP 애플 리케이션
을 작동하지 않습니다,
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;
}
}
}
바닥에 굴러 라.
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;
}
}
가장 큰 차이점은이 라인 텍스트가 변경 될 때마다 스크롤합니다.