DataTemplate.RecycleElement(ElementFactoryRecycleArgs) 方法

定义

回收以前使用 GetElement 检索的 UIElement

void RecycleElement(ElementFactoryRecycleArgs const& args);
public void RecycleElement(ElementFactoryRecycleArgs args);
function recycleElement(args)
Public Sub RecycleElement (args As ElementFactoryRecycleArgs)

参数

实现

Windows 要求

设备系列
Windows 10, version 1809 (在 10.0.17763.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v7.0 中引入)

注解

RecycleElement 方法用于保留元素供以后重复使用,但不会自动重置元素的当前状态。 例如,如果以编程方式设置控件的背景,则再次添加到活动树时,该值将保留。

可以从 GetElement 返回的回收元素添加到活动树中,其方式与新创建的元素相同。

GetElement 尝试从已回收的实例中检索现有实例。 如果未找到任何内容,则它将使用 LoadContent 创建一个新实例。

回收元素可能不会立即导致它从活动元素树中删除。 在这种情况下,除非已将 Unloaded/Loaded 事件添加到活动树中的其他父元素,否则不会引发该事件。

调用 RecycleElement 时,不需要指定 Parent 。 但是,建议使用它来启用性能优化。 使用 Parent 值调用 GetElement 时,它将查找为同一 Parent 回收的元素。 如果它们仍附加到父元素,则可以重新使用它们,而不会产生对元素重新设置父级的额外开销。

注意

RecycleElement 不会自动排除已回收元素参与 Tab 键顺序。 它也不会隐藏元素的自动化对等,使其不显示在自动化树中。 平台的内置虚拟化控件管理其控制下的元素的这一点。

如果要从头开始创建自定义虚拟化控件或在一次性方案中调用 RecycleElement,请注意,你有责任从 Tab 键顺序和自动化对等树中排除已回收的元素。

可以替代 GetChildrenInTabFocusOrder ,并提供框架应用于 Tab 焦点的已实现元素的子集。 同样,控件的自动化对等应重写其 GetChildrenCore 并排除回收的元素。

适用于

另请参阅