CompositionTarget.Rendering Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ocorre quando o processo de renderização principal renderiza um quadro.
// 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)
Tipo de evento
Comentários
O tratamento da renderização pode ser útil se você tiver cenários de interoperabilidade com Microsoft conteúdo do DirectX. Por exemplo, talvez você queira saber quando a estrutura XAML está renderizando um quadro e sincronizar isso com o conteúdo gerado Microsoft DirectX em um SwapChainPanel ou SurfaceImageSource para que as atualizações visuais sejam apresentadas à tela ao mesmo tempo. Para obter mais informações, consulte a interoperabilidade DirectX e XAML.
Para satisfazer o compilador, o segundo parâmetro e/args do manipulador para um evento de renderização deve ser Object. Não use EventArgs. No entanto, dentro do manipulador, você pode converter a referência deergs/ como RenderingEventArgs. RenderingEventArgs tem uma propriedade, RenderingTime, que pode ser útil em seu cenário de renderização, mas nem todos os manipuladores precisariam dessas informações. Pode ser suficiente apenas para saber que o evento é acionado e manipula todas as ocorrências.
Os manipuladores de renderização são executados no thread da interface do usuário, mesmo que não estejam vinculados a nenhum elemento de interface do usuário específico. Isso é semelhante à execução de uma animação infinita. Normalmente, o thread de interface do usuário está ativo somente quando há trabalho a ser feito, mas adicionar um manipulador para esse evento o força a executar todos os quadros que podem impedir otimizações de uso de energia do sistema. Portanto, é uma boa ideia remover todos os manipuladores de renderização quando você não precisar mais deles e adicioná-los somente quando precisar deles. Por exemplo, adicione o manipulador somente quando páginas específicas com conteúdo DirectX sincronizado forem carregadas e, em seguida, remova o manipulador como parte da limpeza de página (Page.OnNavigatedFrom). Para obter mais informações, consulte a seção Usar animações infinitas com moderação do guia de desempenho.