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',以使动画运行更平滑。看起来我可能仍然必须坚持使用'可见性'或者编写一些代码来按照您的建议摧毁/创建它们。 –

相关问题