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 и проверка значение свойств PixelWidth и PixelHeight объекта, на который ссылается Image.Source. Данные события ImageOpened обычно не являются полезными.

Если элемент Image отсутствует в динамическом визуальном дереве, элемент Image не запускает события ImageOpened или ImageFailed . Если вам нужно получить эти события, пока элемент не в динамическом дереве, используйте BitmapImage. ImageOpened/События ImageFailed .

Работа в Windows 8

В Windows 8 ресурсы могут использовать шаблон квалификатора ресурсов для загрузки различных ресурсов в зависимости от масштабирования для конкретного устройства. Однако ресурсы не загружаются автоматически, если коэффициент масштабирования изменяется во время работы приложения. В этом случае приложениям придется перезагрузить ресурсы, обрабатывая событие DpiChanged (или нерекомендуемое событие LogicalDpiChanged ) и используя API ResourceManager , чтобы вручную перезагрузить ресурс, соответствующий новому коэффициенту масштабирования. Начиная с Windows 8.1, любой ресурс, который был первоначально получен для вашего приложения, автоматически повторно оценивается при изменении коэффициента масштабирования во время работы приложения. Кроме того, если этот ресурс является источником образа для объекта Image , то одно из событий загрузки источника (ImageOpened или ImageFailed) запускается в результате действия системы по запросу нового ресурса и последующему применению его к image. Сценарий, в котором может произойти изменение масштаба во время выполнения, заключается в том, что пользователь перемещает приложение на другой монитор, когда доступно несколько мониторов.

Если вы переносите код приложения из Windows 8 в Windows 8.1 может потребоваться учитывать это изменение поведения, так как оно приводит к событиям ImageOpened или ImageFailed, которые происходят во время выполнения при обработке изменения масштаба, даже в тех случаях, когда источник задан в XAML. Кроме того, если у вас есть код, который обрабатывал DpiChangedLogicalDpiChanged/ и сбрасывал ресурсы, следует проверить, нужен ли этот код, учитывая новый Windows 8.1 поведение автоматической перезагрузки.

Приложения, которые скомпилированы для Windows 8, но выполняются в Windows 8.1, продолжают использовать правила, действующие в Windows 8.

Применяется к

См. также раздел