DataTemplate.RecycleElement(ElementFactoryRecycleArgs) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
回收以前使用 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 并排除回收的元素。