wpf正在更新文本块

本文关键字:文本 更新 wpf | 更新日期: 2023-09-27 17:57:56

我正在尝试在wpf中创建某种形式的更新区域。它需要是可更新的,因为它将连接到需要不断显示的实时文本流。

这个想法是,我将有一个由用户名和文本组成的数据流,这将在随机时间出现,需要显示:

用户:测试::测试:TextData

用户:NextTest::测试:测试数据

依此类推,新行上的每个项目,因此对象需要以滚动格式向上数据,这样新项目就会添加到底部。

目前我正在使用:

<ScrollViewer VerticalScrollBarVisibility="Auto">
    <StackPanel>
        <TextBox Margin="5" TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True" x:Name="LogDetails"></TextBox>
    </StackPanel>
</ScrollViewer>

然而,这并不能很好地显示数据,数据只是基于字符串的,有人知道更好的解决方案吗?

感谢

wpf正在更新文本块

这个问题有点模糊,但这里有一个尝试:
作为一种选择,如果文本自动更改,为什么不使用TextBlock而不是TextBox
注意:如果你想使用TextBox,不要忘记将UndoLimit设置为0。否则,如果您连续更改TextBox内容,您将消耗大量内存。

<TextBox UndoLimit="0" .../>

如果你的文本是多个字符串元素的拼接,那么创建一个带有网格的布局,并使用多个TextBlock来更好地显示数据?也许还有一些数据你可以想象成符号?

如果它是一个日志,也许你想用字符串填充一个列表,并将该列表设置为ItemsControl的ItemsSource?通过ItemTemplate属性,您可以指定每个项目的布局吗?使用ObservableCollection<string>,则只需将字符串添加到集合中,ItemsControl就会自动刷新。您可以对这样的日志使用ItemsControl、ListBox、ListView。