自动滚动到WPF中Textblock的末尾

时间:2013-08-01 20:32:12

标签: c# wpf

我想查看最后添加的文本块的内容。这意味着当我添加更多文本时,我想自动滚动到最后并查看隐藏的内容...就像在Windows计算器中一样。

在我输入更多数字的计算器中,它仅显示最后输入的数字。当空间不足时,以前输入的数字会被隐藏。我想做同样的事情..

有人可以帮帮我吗?

2 个答案:

答案 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()方法。有关此问题,请参阅thisthis,但您可能需要进行更多研究。

答案 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>