【问题标题】:WPF textbox in "virtual" mode“虚拟”模式下的 WPF 文本框
【发布时间】:2011-01-19 22:17:12
【问题描述】:

是否可以在“虚拟”模式下使用 TextBox。

我想在用户滚动文档时按需提供文本。

【问题讨论】:

    标签: wpf textbox lazy-loading virtualmode


    【解决方案1】:

    要使用内置的虚拟化(即默认 ListBox 使用的 VirtualizingStackPanel),您需要能够将内容分块成项目,这些项目可以根据需要一次逐步加载(逻辑滚动)。对任意大文本执行此操作将涉及大量预处理以计算换行并将文本分解为行或行组。一旦你这样做了,你将需要使用从 ItemsControl 派生的容器而不是单个 TextBox。您是否要求拥有可编辑的文本?

    【讨论】:

    • 不可编辑但能够选择一段文本并执行 Ctrl+C 会很好。
    【解决方案2】:

    我认为虚拟模式旨在通过仅按需获取和呈现数据来提高应用程序性能。如果用户正在滚动文档,这是否意味着数据已经加载?您不能将 TextBox 数据绑定到代码隐藏中的属性,并仅在用户滚动时设置该属性的值吗?

    【讨论】:

    • 例如只加载第一页数据。当用户向下滚动时,我希望文本框向我询问第二页,我会提供它。
    • 啊,我明白你的意思了。就像网站如何通过滚动到底部查看第一页后动态加载内容一样。是时候给这个问题加星标了! :)
    • “仅按需获取和呈现数据”是数据虚拟化。 “获取所有数据,但仅按需渲染一些数据”是我们大部分时间需要的(UI 虚拟化)
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2020-06-03
    • 1970-01-01
    • 2018-01-02
    相关资源
    最近更新 更多