我想查看最后添加的文本块的内容。这意味着当我添加更多文本时,我想自动滚动到最后并查看隐藏的内容...就像在Windows计算器中一样。
在我输入更多数字的计算器中,它仅显示最后输入的数字。当空间不足时,以前输入的数字会被隐藏。我想做同样的事情..
有人可以帮帮我吗?
答案 0 :(得分:6)
我不认为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()方法。有关此问题,请参阅this或this,但您可能需要进行更多研究。
答案 1 :(得分:2)
你的意思是TextBox,而不是TextBlock? 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>