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 として参照されるオブジェクトの PixelWidth プロパティと PixelHeight プロパティの値をチェックします。 ImageOpened イベントのイベント データは、通常は役に立ちません。

Image 要素がライブ ビジュアル ツリーにない場合、Image 要素は ImageOpened イベントまたは ImageFailed イベントを 発生しません。 要素がライブ ツリーにないときにこれらのイベントを受け取る必要がある場合は、BitmapImage を使用します。ImageOpened/ImageFailed イベント。

Windows 8 の動作

Windows 8 の場合、リソースはリソース修飾子パターンを使用して、デバイス固有のスケーリングに応じて異なるリソースを読み込むことができます。 ただし、アプリの実行中に拡大縮小率が変更された場合、リソースは自動的に再読み込みされません。 この場合、 アプリでは、DpiChanged イベント (または非推奨の LogicalDpiChanged イベント) を処理し、 ResourceManager API を 使用して、新しいスケーリング係数に適したリソースを手動で再読み込みすることで、リソースの再読み込みを行う必要があります。 Windows 8.1 以降では、アプリの実行中に拡大縮小率が変更された場合、アプリ用に最初に取得されたすべてのリソースが自動的に再評価されます。 さらに、そのリソースが Image オブジェクトのイメージ ソースである場合は、新しいリソースを要求してから Image に適用するシステムのアクションの結果として、ソース読み込みイベント (ImageOpened または ImageFailed) の 1 つが発生します。 実行時スケールの変更が発生する可能性があるシナリオは、複数のモニターが使用可能なときにユーザーがアプリを別のモニターに移動する場合です。

アプリ コードを Windows 8 から Windows 8.1に移行する場合は、この動作の変更を考慮する必要があります。これは、ソースが XAML で設定されている場合でも、スケール変更が処理されるときに実行時に発生する ImageOpened イベントまたは ImageFailed イベントになるためです。 また、DpiChanged/LogicalDpiChanged を処理し、リソースをリセットするコードがある場合は、新しいWindows 8.1自動再読み込み動作を使用して、そのコードがまだ必要かどうかを確認する必要があります。

Windows 8 用にコンパイルしたアプリは、Windows 8.1 上で実行しても Windows 8 のときと同じ動作になります。

適用対象

こちらもご覧ください