最後に追加されたテキストブロックの内容を表示したい。これは、Windows の電卓と同じように、テキストを追加するときに最後まで自動スクロールして非表示のコンテンツを表示することを意味します。
電卓でさらに数字を入力すると、最後に入力した数字だけが表示されます。十分なスペースがない場合、以前に入力した数字は非表示になります。まったく同じことをしたい..
誰か助けてくれませんか?
TextBlock
スクロールできないと思います。TextBlock
に入れることができますScrollViewer
。
XAML:
<ScrollViewer Name="MyScrollViewer">
<TextBlock TextWrapping="Wrap">
A bunch of text
</TextBlock>
</ScrollViewer>
分離コード:
MyScrollViewer.ScrollToBottom();
ListBox に複数の TextBlocks がある場合、同じことを行うために ScrollViewer に簡単にアクセスできないようです。これを行っている場合は、ListBox を ItemsControl に変更し、それを ScrollViewer に配置します。選択能力は失われると思いますが。
ListBox を使用する必要がある場合は、最後の項目に属するビューを取得して、ListBox の ScrollIntoView() メソッドを呼び出すことができます。これについては、これまたはこれを参照してください。ただし、もう少し調査を行う必要がある場合があります。
TextBlock ではなく、TextBox のことですか? TextBox の既定の動作では、テキストが入力されるたびに最新のテキストが表示されます。
Window x:Class="textboxscrolltest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBox Width="75" Height="25"/>
</Grid>
</Window>