Вы можете попытаться использовать событие sourceupdated изображения, но мне не всегда везет с этим.
Лучшее решение, в зависимости от вашего источника, - добавить обработчик для загрузки.
вы можете попробовать что-то вроде этого:
Dim src As BitmapImage = New BitmapImage()
src.BeginInit()
src.UriSource = tURI
src.CacheOption = BitmapCacheOption.OnLoad
src.EndInit()
imgImage.SetCurrentValue(Image.SourceProperty, src)
AddHandler src.DownloadCompleted, AddressOf ImageDownloadCompleted
, затем вы можете написать код для ImageDownloadCompleted, чтобы получить фактическую высоту и ширину изображения.
Чтобы получить фактическую ширину, я использую ширину исходного изображения, а не элемент управления изображением, как показано ниже:
Sub ImageDownloadCompleted(sender As Object, e As System.EventArgs)
Dim src As BitmapImage
Dim dwidth as Double
Dim dheight as Double
src = DirectCast(sender, BitmapImage)
dwidth = src.Width
dheight = src.Height
RemoveHandler src.DownloadCompleted, AddressOf ImageDownloadCompleted
End Sub