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>
然而,这并不能很好地显示数据,数据只是基于字符串的,有人知道更好的解决方案吗?
感谢
这个问题有点模糊,但这里有一个尝试:
作为一种选择,如果文本自动更改,为什么不使用TextBlock而不是TextBox
注意:如果你想使用TextBox,不要忘记将UndoLimit设置为0。否则,如果您连续更改TextBox内容,您将消耗大量内存。
<TextBox UndoLimit="0" .../>
如果你的文本是多个字符串元素的拼接,那么创建一个带有网格的布局,并使用多个TextBlock来更好地显示数据?也许还有一些数据你可以想象成符号?
如果它是一个日志,也许你想用字符串填充一个列表,并将该列表设置为ItemsControl的ItemsSource?通过ItemTemplate属性,您可以指定每个项目的布局吗?使用ObservableCollection<string>
,则只需将字符串添加到集合中,ItemsControl就会自动刷新。您可以对这样的日志使用ItemsControl、ListBox、ListView。