VirtualizingStackPanel 的缺点是什么?

发布于 2024-09-29 22:18:11 字数 81 浏览 5 评论 0原文

VirtualizingStackPanel 的主要缺点是什么?如果它没有,那么为什么不将其作为 ItemsControl 中的默认面板行为/模板?

What is/are the main disadvantage of VirtualizingStackPanel? If it doesn't have any, then why it is not made as a default panel behavior/template in ItemsControl?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷心人i 2024-10-06 22:18:11

VirtualizingStackPanel 上的 MSDN 页面 类有以下语句:

“虚拟化”一词是指一种技术,通过该技术根据屏幕上可见的项目从大量数据项中生成用户界面 (UI) 元素的子集。

仅当面板中包含的项目控件创建自己的项目容器时,StackPanel 中才会发生虚拟化。

VirtualizingStackPanel 是 ListBox 元素的默认项目宿主。

由此看来,“正常”使用 StackPanel 作为按钮、文本块等的主机。虚拟化不会提供任何优势,甚至可能会带来性能开销。当在 ListBox 中使用时,虚拟化确实有好处,因为 a) 项目容器由项目控件创建,b) 列表中的元素可能多于屏幕上可以显示的任何一个元素时间。

The MSDN page on the VirtualizingStackPanel Class has the following statements:

The word "virtualize" refers to a technique by which a subset of user interface (UI) elements are generated from a larger number of data items based on which items are visible on-screen.

and

Virtualization in a StackPanel only occurs when the items control contained in the panel creates its own item containers.

and

VirtualizingStackPanel is the default items host for the ListBox element.

From this it looks like for the "normal" use of a StackPanel as a host for buttons, text blocks etc. virtualisation wouldn't offer any advantages or might even impose a performance overhead. When used in a ListBox virtualisation does have benefits as a) item containers are created by the items control and b) there are likely to be more elements in the list than can be shown on the screen at any one time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文