Share via


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的解碼大小,則會放置暫存影像。

適用於