CompositionTarget.Rendering Ereignis

Definition

Tritt auf, wenn der Kernrenderingprozess einen Frame rendert.

// 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) 

Ereignistyp

Hinweise

Die Behandlung von Rendering kann nützlich sein, wenn Sie Interoperabilitätsszenarien mit Microsoft DirectX-Inhalt haben. Sie können beispielsweise wissen, wann das XAML-Framework einen Frame rendert und diese mit Ihrem Microsoft directX generierten Inhalt in einem SwapChainPanel oder SurfaceImageSource synchronisiert, sodass visuelle Updates gleichzeitig auf dem Bildschirm angezeigt werden. Weitere Informationen finden Sie unter DirectX- und XAML-Interoperabilität.

Um den Compiler zu erfüllen, muss der zweite e/args-Parameter des Handlers für ein Rendering-Ereignis "Object" sein. Verwenden Sie "EventArgs" nicht. Innerhalb des Handlers können Sie diee-Args-Referenz/ jedoch als RenderingEventArgs umwandeln. RenderingEventArgs verfügt über eine Eigenschaft, RenderingTime, die in Ihrem Renderingszenario nützlich sein kann, aber nicht alle Handler benötigen diese Informationen. Es reicht möglicherweise aus, nur zu wissen, dass das Ereignis ausgelöst und jedes Vorkommen behandelt wird.

Handler für Rendering werden im UI-Thread ausgeführt, obwohl sie nicht an ein bestimmtes UI-Element gebunden sind. Dies ähnelt dem Ausführen einer unendlichen Animation. Normalerweise ist der UI-Thread nur aktiv, wenn es zu tun ist, aber das Hinzufügen eines Handlers für dieses Ereignis erzwingt die Ausführung jedes Frames, wodurch Optimierungen der Systemleistung verhindert werden können. Daher ist es ratsam, alle Renderinghandler zu entfernen, wenn Sie sie nicht mehr benötigen, und fügen Sie sie nur hinzu, wenn Sie sie benötigen. Fügen Sie beispielsweise den Handler nur hinzu, wenn bestimmte Seiten mit synchronisierten DirectX-Inhalten geladen werden, und entfernen Sie den Handler dann als Teil der Seitenbereinigung (Page.OnNavigatedFrom). Weitere Informationen finden Sie im Abschnitt "Unendliche Animationen sparsam verwenden" des Leistungshandbuchs.

Gilt für:

Weitere Informationen