【问题标题】:How can I virtualize canvas?如何虚拟化画布?
【发布时间】:2011-04-27 02:33:02
【问题描述】:

如何虚拟化画布?当我在画布上添加大约 1500 个项目时,它会冻结一段时间,然后我会在屏幕上看到输出。如何虚拟化它的 UI,以便 Canvas 仅占用屏幕上元素的内存,而忽略所有其余元素,直到它们进入“视图”?我想要的效果很像 VirtualizingStackPanel。 VirtualizingStackPanel 甚至可以很好地处理 15000 个项目。

提前致谢:)

【问题讨论】:

  • 那为什么不使用 VirtualizingStackPanel 呢?
  • @Xin:确实非常聪明的答案:d。如果它适用于我的场景,我不会使用它吗?
  • @Xin:我可以手动设置要添加到Canvas的项目的Canvas.Top和Canvas.Left吗? VirtualizingStackPanel 可以吗?
  • @Xin:为了进一步澄清,我正在生成一个图形,我需要根据一些计算手动设置添加到 Canvas 的元素的顶部和左侧。
  • :) 嗯...你能用你的图的 Margin 属性代替吗?

标签: silverlight silverlight-4.0 silverlight-3.0


【解决方案1】:

您将不得不派生自己的画布类并覆盖LayoutUpdated 事件,删除所有不在可见范围内的子项,或类似的效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 2020-09-08
    相关资源
    最近更新 更多