CompositionTarget.Rendered 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在核心呈现过程呈现帧之后立即发生。 通过此事件,可以确定每个帧呈现所需的时间。
// Register
static event_token Rendered(EventHandler<RenderedEventArgs> const& handler) const;
// Revoke with event_token
static void Rendered(event_token const* cookie) const;
// Revoke with event_revoker
static CompositionTarget::Rendered_revoker Rendered(auto_revoke_t, EventHandler<RenderedEventArgs> const& handler) const;
public static event System.EventHandler<RenderedEventArgs> Rendered;
function onRendered(eventArgs) { /* Your code */ }
Microsoft.UI.Xaml.Media.CompositionTarget.addEventListener("rendered", onRendered);
Microsoft.UI.Xaml.Media.CompositionTarget.removeEventListener("rendered", onRendered);
- or -
Microsoft.UI.Xaml.Media.CompositionTarget.onrendered = onRendered;
Public Shared Custom Event Rendered As EventHandler(Of RenderedEventArgs)
事件类型
注解
提示
建议在开发和测试应用程序时使用 Visual Studio 应用程序时间线 探查器。 它提供有关应用程序资源消耗情况的更多详细信息,包括准备 UI 帧所用的时间。
可以使用 Rendered 事件在运行时测量帧持续时间和应用程序响应能力,而无需附加 Visual Studio 或调试器。 例如,这可用于在部署应用后为应用生成遥测数据,或调整应用程序执行每个帧的自定义 DirectX 渲染工作量。
较长的帧持续时间意味着应用必须执行更多工作才能呈现帧。 帧持续时间超过大约 16 毫秒意味着应用程序无法以每秒 60 帧的建议频率进行更新,因此用户在 UI 响应能力方面可能会遇到明显的延迟。
如果看到较长的帧持续时间,请考虑使用 Visual Studio 应用程序时间线分析应用程序,并实现建议 的性能最佳做法。
呈现处理程序在 UI 线程上运行,即使它们未绑定到任何特定的 UI 元素。 最好在不再需要任何呈现处理程序时删除它们,并仅在需要时才添加它们。