gpt4 book ai didi

c# - 环绕和大量数据时 TextBox 性能不佳

转载 作者:行者123 更新时间:2023-11-30 16:24:05 25 4
gpt4 key购买 nike

我在使用 .NET 3.5 的 WPF 文本框方面一直存在问题。在启用换行的 TextBox 中有大量(5000 多行)数据,窗口在调整大小时的性能非常糟糕。

发生在TextWrapping="Wrap"。绑定(bind)文本数据或仅以编程方式设置它都没有区别。

代码实际上就是这样简单:

<TextBox Margin="12,39,337,29" Text="{Binding Output, Mode=OneWay}" TextWrapping="Wrap" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled" />

文本绑定(bind)到单个字符串。绑定(bind)的数据没有被改变。

编辑:我的意思是在调整窗口大小时数据没有改变。以后会更新。 TextBox 不需要是可编辑的,但实际文本确实需要是可选择的。 /编辑。

我快速试用了 AvalonEdit,它也有同样的问题。我找不到任何其他描述此问题的线程,这似乎很奇怪。

有什么建议吗?

谢谢,丰富

最佳答案

慢的部分是一次显示所有的文本。我之前遇到过这个问题,我的控件中的 TextBox 变得非常大,并且整个控件都有一个 ScrollViewer 来处理非常大的 TextBox。

你几乎是这样做的,但没有为你的高度/宽度设置最大值,我不确定你的 ScrollViewer 是否真的会被使用。

我的解决方案是在 TextBox 中使用内置的 scrollViewer(你正在做的),然后限制文本框高度/宽度的大小,这样它就不会试图渲染 100% 的文本立即(并实际使用 TextBox 中的 ScrollViewer)

(仅供引用,我也喜欢使用 CanContentScroll=true,虽然我认为它不会影响速度)

<TextBox Margin="12,39,337,29" TextWrapping="Wrap" 
Text="{Binding Output, Mode=OneWay}"
ScrollViewer.CanContentScroll="true"
VerticalScrollBarVisibility="auto"
HorizontalScrollBarVisibility="auto"
MaxHeight="600" MaxWidth="600"/>

关于c# - 环绕和大量数据时 TextBox 性能不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com