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 可用于确定状态。

每次使用图像填充 LoadedImageSurface 实例的图面时,都会触发 LoadCompleted 事件。 这包括:

  • 首次初始化 LoadedImageSurface 的时间
  • 设备从丢失状态恢复
  • DPI 更改会导致加载不同的图像源
  • 应用从内存不足状态恢复

LoadCompleted 事件的常见用途是,如果图像源可能需要很长时间才能加载视觉对象或将其大小完全调整为 LoadedImageSurface 的解码大小,则放置临时图像。

适用于