共用方式為


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 */ }
Microsoft.UI.Xaml.Media.CompositionTarget.addEventListener("rendering", onRendering);
Microsoft.UI.Xaml.Media.CompositionTarget.removeEventListener("rendering", onRendering);
- or -
Microsoft.UI.Xaml.Media.CompositionTarget.onrendering = onRendering;
Public Shared Custom Event Rendering As EventHandler(Of Object) 

事件類型

備註

如果您有 Microsoft DirectX 內容的 Interop 案例,處理轉譯可能會很有用。 例如,您可能想要知道 XAML 架構何時正在轉譯畫面,並與 SwapChainPanelSurfaceImageSource 中產生的 Microsoft DirectX 產生內容同步處理,讓視覺效果更新同時呈現至畫面。 如需詳細資訊,請參閱 DirectX 和 XAML Interop

若要滿足編譯程式,轉譯事件處理程式的第二個 ergs/ 參數必須是 Object。 請勿使用 EventArgs。 不過,在處理程式內,您可以將 e/args 參考轉換成 RenderingEventArgsRenderingEventArgs 有一個屬性 RenderingTime,在轉譯案例中可能很有用,但並非所有處理程式都需要這項資訊。 可能就足以知道事件引發並處理每個發生次數。

即使轉譯處理程式未系結至任何特定 UI 元素,仍會在 UI 線程上執行。 這類似於執行無限動畫。 一般而言,只有在有工作需要執行時,UI 線程才會作用中,但新增此事件的處理程式會強制執行每個框架,以防止系統電源使用優化。 因此,當您不再需要轉譯處理程式時,最好移除任何轉譯處理程式,並只在您需要它們時才加以新增。 例如,只有在載入具有同步 DirectX 內容的特定頁面時,才新增處理程式,然後在頁面清除過程中移除處理程式, (Page.OnNavigatedFrom) 。 如需詳細資訊,請參閱 效能指南的一節

適用於

另請參閱