다음을 통해 공유


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 콘텐츠와 상호 운용 시나리오가 있는 경우 렌더링 처리가 유용할 수 있습니다. 예를 들어 XAML 프레임워크가 프레임을 렌더링하는 시기를 알고 SwapChainPanel 또는 SurfaceImageSource 에서 Microsoft DirectX 생성 콘텐츠와 동기화하여 시각적 업데이트를 동시에 화면에 표시할 수 있습니다. 자세한 내용은 DirectX 및 XAML interop을 참조하세요.

컴파일러를 충족하려면 Rendering 이벤트에 대한 처리기의 두 번째ergs/ 매개 변수가 Object여야 합니다. EventArgs를 사용하지 마세요. 그러나 처리기 내에서 e/args 참조를RenderingEventArgs로 캐스팅할 수 있습니다. RenderingEventArgs 에는 렌더링 시나리오에서 유용할 수 있는 RenderingTime 속성이 하나 있지만 모든 처리기에 이 정보가 필요한 것은 아닙니다. 이벤트가 발생하고 모든 발생을 처리한다는 것을 알기에 충분할 수 있습니다.

렌더링 처리기는 특정 UI 요소에 연결되어 있지 않더라도 UI 스레드에서 실행됩니다. 이는 무한 애니메이션을 실행하는 것과 비슷합니다. 일반적으로 UI 스레드는 해야 할 일이 있는 경우에만 활성화되지만 이 이벤트에 대한 처리기를 추가하면 시스템 전원 사용 최적화를 방지할 수 있는 모든 프레임을 강제로 실행합니다. 따라서 더 이상 필요하지 않을 때 렌더링 처리기를 제거하고 필요한 경우에만 추가하는 것이 좋습니다. 예를 들어 동기화된 DirectX 콘텐츠가 있는 특정 페이지가 로드된 경우에만 처리기를 추가한 다음 페이지 정리의 일부로 처리기를 제거합니다(Page.OnNavigatedFrom). 자세한 내용은 성능 가이드의 무한 애니메이션 사용 섹션을 참조하세요.

적용 대상

추가 정보