3

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

在计算器中,当我输入更多数字时,它只显示最后输入的数字。当空间不足时,先前输入的数字将被隐藏。我想做完全相同的事情..

有人可以帮帮我吗?

4

2 回答 2

17

我不认为TextBlocks 可以滚动。您可以TextBlockScrollViewer.

XAML:

<ScrollViewer Name="MyScrollViewer">
    <TextBlock TextWrapping="Wrap">
        A bunch of text
    </TextBlock>
</ScrollViewer>

代码隐藏:

MyScrollViewer.ScrollToBottom();

看来,如果您在 ListBox 中有多个 TextBlock,则无法很容易地访问它的 ScrollViewer 来完成同样的事情。如果您这样做,请将您的 ListBox 更改为 ItemsControl 并将其放入 ScrollViewer。我认为你会失去选择能力。

如果确实需要使用 ListBox,则可以获取属于最后一项的视图并调用 ListBox 的 ScrollIntoView() 方法。请参阅thisthis了解有关该内容的信息,但您可能需要进行更多研究。

于 2013-08-01T21:00:20.973 回答
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>
于 2013-08-01T21:07:15.723 回答