CompositionTarget.Rendering イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コア レンダリング プロセスがフレームをレンダリングするときに発生します。
// 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 フレームワークがフレームをレンダリングするタイミングを把握し、 SwapChainPanel または SurfaceImageSource で Microsoft DirectX によって生成されたコンテンツと同期して、視覚的な更新が同時に画面に表示されるようにすることができます。 詳細については、「 DirectX と XAML 相互運用」を参照してください。
コンパイラを満たすためには、Rendering イベントのハンドラーの 2 番目の e/args パラメーターが Object である必要があります。 EventArgs は使用しないでください。 ただし、ハンドラー内では、 e/args 参照をRenderingEventArgs としてキャストできます。 RenderingEventArgs には、レンダリング シナリオで役立つ可能性がある 1 つのプロパティ RenderingTime がありますが、すべてのハンドラーでこの情報が必要になるわけではありません。 イベントが発生し、発生するたびに処理されることを知るだけで十分な場合があります。
レンダリング用のハンドラーは、特定の UI 要素に関連付けられていない場合でも、UI スレッドで実行されます。 これは、無限アニメーションの実行に似ています。 通常、UI スレッドは、実行する作業がある場合にのみアクティブになりますが、このイベントのハンドラーを追加すると、すべてのフレームが強制的に実行され、システムの電力使用の最適化が妨げられます。 そのため、不要になったレンダリング ハンドラーを削除し、必要な場合にのみ追加することをお勧めします。 たとえば、同期された DirectX コンテンツを持つ特定のページが読み込まれた場合にのみハンドラーを追加し、ページ クリーンアップの一部としてハンドラーを削除します (OnNavigatedFrom)。 詳細については、 パフォーマンス ガイドの「無限アニメーションを慎重に使用する」セクションを参照してください。