Image.ImageOpened 事件

定義

發生于下載並解碼影像來源時,不會失敗。 您可以使用此事件來判斷影像來源的自然大小。

// Register
event_token ImageOpened(RoutedEventHandler const& handler) const;

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

// Revoke with event_revoker
Image::ImageOpened_revoker ImageOpened(auto_revoke_t, RoutedEventHandler const& handler) const;
public event RoutedEventHandler ImageOpened;
function onImageOpened(eventArgs) { /* Your code */ }
image.addEventListener("imageopened", onImageOpened);
image.removeEventListener("imageopened", onImageOpened);
- or -
image.onimageopened = onImageOpened;
Public Custom Event ImageOpened As RoutedEventHandler 
<Image ImageOpened="eventhandler"/>

事件類型

備註

當 ImageOpened 引發時,它會做為任何非同步作業已完成的通知,以及做為影像來源之物件的所有屬性都可供使用。 例如,若要判斷影像的大小,請處理 ImageOpened,並檢查參考為Image.Source的物件上PixelWidthPixelHeight屬性的值。 ImageOpened 事件的事件資料通常並不實用。

當 Image 元素不在即時視覺化樹狀結構中時,Image 元素將不會引發 ImageOpened 或 ImageFailed 事件。 如果您需要在元素不在即時樹狀結構中時收到這些事件,請使用 BitmapImage。ImageOpened/ImageFailed事件。

Windows 8 行為

針對 Windows 8,資源可以使用資源限定詞模式,根據裝置特定的調整來載入不同的資源。 不過,如果應用程式執行時調整因數變更,則不會自動重載資源。 在此情況下,應用程式必須負責重載資源,方法是處理 DpiChanged 事件 (或已被取代的 LogicalDpiChanged 事件) ,並使用 ResourceManager API 手動重載適合新縮放比例的資源。 從Windows 8.1開始,如果應用程式執行時調整因數變更,系統會自動重新評估您應用程式原本擷取的任何資源。 此外,當該資源是 Image 物件的影像來源時,就會引發其中一個來源載入事件 (ImageOpened 或 ImageFailed) ,因為系統要求新資源的動作,然後將它套用至 Image。 執行時間調整變更可能發生的案例,是在有一個以上的可用時,當使用者將應用程式移至不同的監視器時。

如果您將應用程式程式碼從 Windows 8 遷移至Windows 8.1您可能會想要考慮此行為變更,因為它會導致在處理調整變更時發生ImageOpened 或 ImageFailed事件,即使在 XAML 中設定Source的情況下也一樣。 此外,如果您有處理DpiChangedLogicalDpiChanged/ 並重設資源的程式碼,您應該檢查是否仍需要該程式碼,因為新的Windows 8.1自動重載行為。

針對 Windows 8 編譯但在 Windows 8.1 上執行的應用程式會繼續使用 Windows 8 的行為。

適用於

另請參閱