UWPアプリケーションのTextBoxの下部までスクロールする方法はありますか?UWP C#TextBoxの下部までスクロール
私のUWPへの移行に伴い、これは簡単なことではありませんでした。誰もがUWPアプリでテキストボックスの一番下までスクロールする必要がある場合、これはUWPアプリの
UWPアプリケーションのTextBoxの下部までスクロールする方法はありますか?UWP C#TextBoxの下部までスクロール
私のUWPへの移行に伴い、これは簡単なことではありませんでした。誰もがUWPアプリでテキストボックスの一番下までスクロールする必要がある場合、これはUWPアプリの
をするために動作しない、
textBox.SelectionStart = textBox.TextLength;
textBox.ScrollToCaret();
:しかし
は、私がこれを使用することができるように使用される textBox1テキストボックスを使用して、SCにしたいテキストボックスである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;
}
}
主な違いは、このラインでありますテキストが変更されるたびにスクロールします。