Freigeben über


Image.ImageOpened Ereignis

Definition

Tritt auf, wenn die Bildquelle heruntergeladen und ohne Fehler decodiert wird. Sie können dieses Ereignis verwenden, um die natürliche Größe der Bildquelle zu bestimmen.

// 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"/>

Ereignistyp

Hinweise

Wenn ImageOpened ausgelöst wird, dient dies als Benachrichtigung darüber, dass alle asynchronen Vorgänge abgeschlossen wurden und alle Eigenschaften des Objekts, das als Bildquelle verwendet wird, zur Verwendung bereit sind. Um beispielsweise die Größe des Bilds zu bestimmen, behandeln Sie ImageOpened, und überprüfen Sie den Wert der PixelWidth - und PixelHeight-Eigenschaft für das Objekt, auf das als Image.Source verwiesen wird. Die Ereignisdaten für das ImageOpened-Ereignis sind in der Regel nicht nützlich.

Wenn sich das Image-Element nicht in der visuellen Livestruktur befindet, löst das Image-Element keine ImageOpened- oder ImageFailed-Ereignisse aus . Wenn Sie diese Ereignisse empfangen müssen, während sich das Element nicht in der Livestruktur befindet, verwenden Sie BitmapImage. ImageOpened/ImageFailed-Ereignisse .

Windows 8-Verhaltensweise

Für Windows 8 können Ressourcen ein Ressourcenqualifizierermuster verwenden, um je nach gerätespezifischer Skalierung unterschiedliche Ressourcen zu laden. Ressourcen werden jedoch nicht automatisch neu geladen, wenn sich der Skalierungsfaktor ändert, während die App ausgeführt wird. In diesem Fall müssen Apps sich um das Erneute von Ressourcen kümmern, indem sie das DpiChanged-Ereignis (oder das veraltete LogicalDpiChanged-Ereignis ) behandeln und die ResourceManager-API verwenden, um die Ressource manuell neu zu laden, die für den neuen Skalierungsfaktor geeignet ist. Ab Windows 8.1 wird jede Ressource, die ursprünglich für Ihre App abgerufen wurde, automatisch neu ausgewertet, wenn sich der Skalierungsfaktor ändert, während die App ausgeführt wird. Wenn diese Ressource die Bildquelle für ein Image-Objekt ist, wird eines der Quellladeereignisse (ImageOpened oder ImageFailed) ausgelöst, weil das System die neue Ressource anfordert und dann auf das Image anwendet. Das Szenario, in dem eine Änderung der Laufzeitskalierung auftreten kann, ist, wenn der Benutzer Ihre App auf einen anderen Monitor verschiebt, wenn mehrere verfügbar sind.

Wenn Sie Ihren App-Code von Windows 8 zu Windows 8.1 migrieren, sollten Sie diese Verhaltensänderung berücksichtigen, da dies zu ImageOpened- oder ImageFailed-Ereignissen führt, die zur Laufzeit auftreten, wenn die Skalierungsänderung behandelt wird, auch wenn die Quelle in XAML festgelegt ist. Wenn Sie über Code verfügen, der DpiChanged/LogicalDpiChanged verarbeitet und die Ressourcen zurückgesetzt hat, sollten Sie außerdem untersuchen, ob dieser Code angesichts des neuen Windows 8.1 automatischen Nachladenverhaltens weiterhin benötigt wird.

Apps, die für Windows 8 kompiliert wurden, aber unter Windows 8.1 ausgeführt werden, weisen weiterhin das Windows 8-Verhalten auf.

Gilt für:

Weitere Informationen