用于转储的最高效XAML UI元素“;“标准输出”;

用于转储的最高效XAML UI元素“;“标准输出”;,xaml,uwp,Xaml,Uwp,根据标题,使用可用的XAML UI元素显示大量定期追加的[可选、不可修改]文本的最有效方法是什么?可以考虑在下载时转储日志信息或大的HTML页面 TextBox似乎效率不高,因为更改文本的唯一方法是设置其text属性,该属性是Platform::String。没有有效的方法重复追加Platform::String,因为我认为Platform::String(const wchar\u t*)构造函数会在内部复制输入字符串,所以即使我尝试使用字符串缓冲区,也没有帮助 至于另一个文本控件RichEd

根据标题,使用可用的XAML UI元素显示大量定期追加的[可选、不可修改]文本的最有效方法是什么?可以考虑在下载时转储日志信息或大的HTML页面

TextBox
似乎效率不高,因为更改文本的唯一方法是设置其
text
属性,该属性是
Platform::String
。没有有效的方法重复追加
Platform::String
,因为我认为
Platform::String(const wchar\u t*)
构造函数会在内部复制输入字符串,所以即使我尝试使用字符串缓冲区,也没有帮助


至于另一个文本控件
RichEditBox
,我不知道如何在
DataTemplate
中使用它。(我需要控件是
列表视图
的元素)

您可以将日志显示为
列表视图
项控件的项,并将每个项显示为简单的
文本块
,具有可选择性:

<TextBlock IsTextSelectionEnabled="True" ... />


这是您可以获得的最有效的方法,因为列表提供了虚拟化,而且与
TextBlock
RichEditBox
相比,
TextBlock
的开销最小,并且是只读的。

将行添加到绑定到itemscontrol的observablecollection。当它变得太大时修剪它。“我需要控件成为ListView的元素”--不确定你在那里得到了什么;你能澄清一下吗?@Ed我的意思是我需要一个文本框,用于列表中的每个项目。这就是将文本框放入ListViewItem并使用数据绑定。那么每个文本框都会添加任意数量的日志行吗?我没有注意到文本需要可选择。“我想你可能会被卡住。”ED是的,一方面可能有很多线,另一条线上可能有一条很长的线。“如果这解决了你的问题,请考虑接受答案作为解决方案,这样问题就解决了。”