4

在Windows 10以來,我們在XAML中設置x設置:DeferLoadStrategy在後面的代碼

x:DeferLoadStrategy="Lazy"推遲XAML渲染的一個新途徑。

但是,我沒有找到任何文件指出如何在代碼隱藏中實現同樣的事情。我想要的原因是我需要以某種方式在元素被實現後再次完全隱藏元素(即從可視樹中移除它以提高動畫性能)。

任何想法?

+0

實際上,現在可以通過使用['x:Load'](https://docs.microsoft.com/en-us/windows/uwp/xaml-platform/x-load-attribute) Windows 10創作者更新15063以上。它基本上是'x:DeferLoadStrategy'的改進版本,因爲它允許您卸載*元素。 –

回答

5

如果你是從代碼隱藏管理你的元素,你不需要x:DeferLoadStrategy來推遲一個被加載的元素:因爲你是從代碼中銷燬和創建元素,你可以選擇何時銷燬(mod垃圾收集)以及何時創建它。

DeferLoadStrategy控制如何從標記加載項目。它旨在通過延遲創建不需要的元素來輕鬆增加加載時間,直到需要它們,而不是完全控制元素出現和去向的生命週期,或者在元素實現後卸載元素。這是已經可以從代碼完成的事情,而DeferLoadStrategy允許通過標記來完成。

+0

感謝羅布,有道理。我想,當用隱藏的('Visibility = Collapsed')重度控件來動畫用戶控件時,我可以用它來替換'Visibility',以使動畫運行更平滑。看起來我可能仍然必須堅持使用'可見性'或者編寫一些代碼來按照您的建議摧毀/創建它們。 –

相關問題