WPF 文本块作为终端 window。我需要设置限制吗?

WPF Textblock as terminal window. Do I need to set a limit?

我正在基于 winForm 版本从头开始编写一个新的 WPF 控件应用程序。该控件将通过串行方式监视机器。在控件中,我想要一个文本 window 来监视来自机器的输入数据。

为此,我有一个 TextBlock 控件。我担心的是,随着存储数据的增长,TextBlock 会不断地 运行s 可能会导致内存问题。控件可以 运行 个月不重新启动。

我在限制 TextBlock 内存和处理旧信息方面没有任何搜索运气。

我应该做些什么来防止块无限存储数据并导致问题发生?或者是否有更好的控件来显示和监控来自机器的传入数据?

我还没有为此编写代码,因为我想正确启动它。但是,当我使用 winform 执行此操作时,我使用了一个 TextBox。在那里我有一个事件处理程序检测传入的数据并使用 stringbuilder

textbox.AppendText(Environment.newline + string)

接收到的数据到window。我认为 TextBlock 可能是完成这一轮的更好方法。

您可以使用 StringBuilder 创建 string,然后将 TextBlockText 属性 设置为。任何旧的 Text 值都将有资格进行垃圾回收。没有办法也不应该有理由"limiting TextBlock memory and handling of old information".

Or is there a better control to display and monitor incoming data from the machine?

就内存和性能而言,使用 TextBlock 还是 TextBox 并不重要。如果您需要选择文本,TextBox 是更好的选择。否则,你应该选择一个TextBlock。在 WPF 应用程序中没有更轻量级的方式来显示文本。