LoadedImageSurface.LoadCompleted 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生于下載、解碼並載入基礎 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的解碼大小,則會放置暫存影像。