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
A manipulação da renderização poderá ser útil se você tiver cenários de interoperabilidade com o conteúdo do Microsoft DirectX. Por exemplo, talvez você queira saber quando a estrutura XAML está renderizando um quadro e sincronizá-lo com o conteúdo gerado pelo 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 Interoperabilidade entre DirectX e XAML.
Para atender ao 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 e/args 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 para 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 da 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, o que pode 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.