2011-04-27 49 views
0

如何虛擬化畫布?當我向畫布添加大約1500件物品時,它會凍結一段時間,然後在屏幕上顯示輸出。我如何虛擬化它的UI,以便Canvas只佔用屏幕上元素的內存,並忽略所有其他內容,直到它們進入「視圖」?我想要的效果很像VirtualizingStackPanel。 VirtualizingStackPanel可以很好地處理15000個物品。如何虛擬化畫布?

感謝提前:)

+1

爲什麼不使用VirtualizingStackPanel呢? – 2011-04-27 02:40:28

+0

@Xin:確實非常聰明的答案:d。如果它適用於我的場景,我會不會使用它? – TCM 2011-04-27 02:44:30

+0

@Xin:我可以手動設置要添加到畫布的項目的Canvas.Top和Canvas.Left? VirtualizingStackPanel有可能嗎? – TCM 2011-04-27 02:45:05

回答

0

你將不得不派生自己的Canvas類並覆蓋LayoutUpdated事件,除去不在可見光範圍內,或諸如此類的話所有的孩子。