gpt4 book ai didi

WPF 后台渲染控件

转载 作者:行者123 更新时间:2023-12-03 04:52:12 32 4
gpt4 key购买 nike

我有一个具有 View 区域的应用程序。 View 区域包含一个网格,其中将包含一组控件,例如图像、 ListView 、数据网格和文本。

一次只能看到一个 View ,因为只有一个 View 区域。目前,当执行操作以使新 View 处于事件状态时,我会渲染该 View 并将其设置为 View 区域的 subview 。有些 View 需要花费几秒钟的时间来渲染,因此这里存在延迟。

我想在应用程序首次加载时渲染所有 10 个 View ,然后在调用时获取适当的 View 。我没能做到这一点。我的很多 View 项目都使用比例大小,网格使用星形作为行和列的大小,因此看起来,直到 View 绑定(bind)到可以计算其所有大小的可见区域之前,它实际上并没有执行任何渲染。

例如,我的数据网格在打开时仍然会闪烁,所有列都设置为 20 宽度,然后将它们捕捉到正确的宽度。您可以在屏幕上直观地注意到这一点,初始绘制的是窄列,然后它们全部扩展以填充数据网格区域。

我想在后台进行所有渲染,然后在完成后显示最终产品。

最佳答案

控件在拥有容器之前无法执行最终渲染。也许尝试以不同的方式托管 View 。也许将您的 View 构建为页面并将页面托管在框架中。我不保证会更快,但值得一看。可以用tab吗?我非常确定 tabitem 会重用最后一次渲染或至少最后一次渲染的片段。优化您的个人观点。 GridView 通常比 DataGrid 更快,但可能不具备您需要的功能。对于我需要速度的表,我使用 GridView 并根据数据设置列宽 - 100 行和 40 列在不到 1.0 秒内呈现,我将其放入 tabitem 中,如果我返回选项卡(在它完成之后)渲染一次)它会在 0.1 秒内渲染。如果 View 有大量滚动数据,请尝试虚拟化。或者在同一列/行中加载多个框架,并且一次只有一个可见。

关于WPF 后台渲染控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665117/

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