【问题标题】:WPF Image: Getting the Actual Size after multiple Source updatesWPF 图像:在多次源更新后获取实际大小
【发布时间】:2011-07-01 08:44:01
【问题描述】:

我正在根据 ComboBox 选择更新 Image 控件的 Source。

Image Source更新后,需要读取Image的ActualWidth和ActualHeight

我第一次使用 Image 控件的 Loaded 事件打开对话框时,我设法做到了这一点,但每次我更新 Source 时,这个事件都不会明显引发。

有没有办法在每次源更新后获取加载到控件中的图像的实际大小?

【问题讨论】:

    标签: wpf image wpf-controls size


    【解决方案1】:

    您可以尝试使用 image 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 2021-10-21
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多