Поделиться через


LoadedImageSurface.LoadCompleted Событие

Определение

Происходит при загрузке, декодировании и загрузке изображения в базовый интерфейс ICompositionSurface.

// Register
event_token LoadCompleted(TypedEventHandler<LoadedImageSurface, LoadedImageSourceLoadCompletedEventArgs const&> const& handler) const;

// Revoke with event_token
void LoadCompleted(event_token const* cookie) const;

// Revoke with event_revoker
LoadedImageSurface::LoadCompleted_revoker LoadCompleted(auto_revoke_t, TypedEventHandler<LoadedImageSurface, LoadedImageSourceLoadCompletedEventArgs const&> const& handler) const;
public event TypedEventHandler<LoadedImageSurface,LoadedImageSourceLoadCompletedEventArgs> LoadCompleted;
function onLoadCompleted(eventArgs) { /* Your code */ }
loadedImageSurface.addEventListener("loadcompleted", onLoadCompleted);
loadedImageSurface.removeEventListener("loadcompleted", onLoadCompleted);
- or -
loadedImageSurface.onloadcompleted = onLoadCompleted;
Public Custom Event LoadCompleted As TypedEventHandler(Of LoadedImageSurface, LoadedImageSourceLoadCompletedEventArgs) 
<LoadedImageSurface LoadCompleted="eventhandler"/>

Тип события

Примеры

В этом примере мы задаем размер SpriteVisual так, чтобы он точно совпадал с декодируемым размером успешно загруженного объекта LoadedImageSurface.

private Load_Completed(LoadedImageSurface sender, LoadedImageSourceLoadCompletedEventArgs e)
{
    if(e.Status == LoadedImageSourceLoadStatus.Success){
        // imageVisual is a SpriteVisual than has been previously created and whose brush references the LoadedImageSurface
        Size decodedSize = sender.DecodedSize;
        imageVisual.Size = new Vector2((float)decodedSize.Width, (float)decodedSize.Height);

    } else {
        // Handle a load failure
    }
}

Комментарии

Экземпляр LoadedImageSurface не будет иметь загруженное изображение или сведения о размере, пока это событие не срабатывает. Событие LoadCompleted срабатывает независимо от успешного или неудачного выполнения. Для определения состояния можно использовать LoadedImageSourceLoadCompletedEventArgs .

Событие LoadCompleted возникает каждый раз, когда поверхность экземпляра LoadedImageSurface заполняется изображением. В том числе:

  • При первой инициализации LoadedImageSurface
  • Устройство восстанавливается из потерянного состояния
  • Изменение DPI приводит к загрузке другого источника изображения
  • Приложение восстанавливается после нехватки памяти

Обычно событие LoadCompleted используется для создания временного изображения, если для загрузки источника изображения может потребоваться много времени, или размер визуального элемента точно до декодированного размера LoadedImageSurface.

Применяется к