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 實例在引發此事件之前,將不會有已載入的影像或重設大小資訊。 不論成功或失敗,LoadedImageSourceLoadCompletedEventArgs 都可以用來判斷狀態。

每次LoadedImageSurface實例的介面填入影像時,都會引發LoadCompleted事件。 這包括:

  • 第一次初始化LoadedImageSurface
  • 裝置從遺失狀態復原
  • DPI 變更會導致不同的影像來源載入
  • 應用程式會從低記憶體狀態復原

LoadCompleted 事件的常見用法是,如果影像來源可能需要很長的時間才能載入或調整視覺效果的大小,以完全符合 LoadedImageSurface 的譯碼大小來放置暫存影像。

適用於