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 */ }
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 отрисовки кадра, и синхронизировать его с содержимым, созданным Microsoft DirectX, в SwapChainPanel или SurfaceImageSource , чтобы визуальные обновления отображались на экране одновременно. Дополнительные сведения см. в разделе Взаимодействие с DirectX и XAML.
Чтобы удовлетворить компилятор, второй параметр e/args обработчика для события Rendering должен иметь значение Object. Не используйте EventArgs. Однако в обработчике можно привести ссылку e/args как RenderingEventArgs. RenderingEventArgs имеет одно свойство RenderingTime, которое может быть полезно в сценарии отрисовки, но не всем обработчикам потребуется эта информация. Может быть достаточно просто знать, что событие возникает, и обрабатывать каждое событие.
Обработчики для отрисовки выполняются в потоке пользовательского интерфейса, даже если они не привязаны к какому-либо конкретному элементу пользовательского интерфейса. Это похоже на выполнение бесконечной анимации. Обычно поток пользовательского интерфейса активен только при наличии работы, но добавление обработчика для этого события заставляет его запускать каждый кадр, что может предотвратить оптимизацию энергопотребления системы. Поэтому рекомендуется удалять все обработчики отрисовки, когда они больше не нужны, и добавлять их только тогда, когда они вам нужны. Например, добавьте обработчик только при загрузке определенных страниц с синхронизированным содержимым DirectX, а затем удалите обработчик в рамках очистки страницы (OnNavigatedFrom). Дополнительные сведения см. в разделе Использование бесконечной анимации в руководстве по производительности.