CompositionTarget.Rendering 事件

定义

在核心呈现过程呈现帧时发生。

// Register
static event_token Rendering(EventHandler<IInspectable> const& handler) const;

// Revoke with event_token
static void Rendering(event_token const* cookie) const;

// Revoke with event_revoker
static CompositionTarget::Rendering_revoker Rendering(auto_revoke_t, EventHandler<IInspectable> const& handler) const;
public static event System.EventHandler<object> Rendering;
function onRendering(eventArgs) { /* Your code */ }
Windows.UI.Xaml.Media.CompositionTarget.addEventListener("rendering", onRendering);
Windows.UI.Xaml.Media.CompositionTarget.removeEventListener("rendering", onRendering);
- or -
Windows.UI.Xaml.Media.CompositionTarget.onrendering = onRendering;
Public Shared Custom Event Rendering As EventHandler(Of Object) 

事件类型

注解

如果与 Microsoft DirectX 内容存在互操作方案,则处理呈现非常有用。 例如,你可能想知道 XAML 框架何时呈现帧,并将其与 SwapChainPanelSurfaceImageSource 中的 Microsoft DirectX 生成的内容同步,以便同时在屏幕上显示视觉更新。 有关详细信息,请参阅 DirectX 和 XAML 互操作

为了满足编译器,Rendering 事件的处理程序的第二个 e/args 参数必须是 Object。 请勿使用 EventArgs。 但是,在处理程序中,可以将 e/args 引用强制转换为 RenderingEventArgsRenderingEventArgs 有一个属性 RenderingTime,该属性在呈现方案中可能很有用,但并非所有处理程序都需要此信息。 只需知道事件触发并处理每个事件就足够了。

用于呈现的处理程序在 UI 线程上运行,即使它们未绑定到任何特定的 UI 元素。 这类似于运行无限动画。 通常,UI 线程仅在有工作要做时才处于活动状态,但为此事件添加处理程序会强制它运行每个帧,从而阻止系统电源使用优化。 因此,最好在不再需要呈现处理程序时删除它们,并仅在需要时才添加它们。 例如,仅当加载具有同步 DirectX 内容的特定页面时,才添加处理程序,然后在 onNavigatedFrom) (页面清理过程中删除该处理程序。 有关详细信息,请参阅 性能指南的谨慎使用无限动画部分

适用于

另请参阅