1

我有一个 WP 应用程序,我想在其中显示一个图像列表,这些图像数据绑定到从 Web 服务填充的 observablecollection。我希望图像列表以与检索它们的位置相同的高度和宽度显示。那么,如何让图像控件根据数据绑定源自动调整其高度和宽度。

使用以下代码,图像不会显示。

  <Grid x:Name="LayoutRoot">
    <Image Source="{Binding AlbumPicture}" Stretch="Fill" Width="Auto" Height="Auto"/>
  </Grid>

以下工作,但每个图像的高度和宽度都不同。所以,它们看起来不太好。

  <Grid x:Name="LayoutRoot">
    <Image Source="{Binding AlbumPicture}" Stretch="Fill" Width="200" Height="120"/>
  </Grid>

我尝试了以下方法,但没有奏效。

  • 设置 Stretch="None"

  • Databind Image 控件的Height, Width 属性使用下面的图像的那些并且height 和width 始终为0。

     BitmapImage bmp = new BitmapImage(new Uri(updatedAlbum.AlbumPicture, UriKind.RelativeOrAbsolute));
     album.AlbumHeight = bmp.PixelHeight;
     album.AlbumWidth = bmp.PixelWidth;
    
4

1 回答 1

0

此代码仅在加载图像后才有效。

 album.AlbumHeight = bmp.PixelHeight;
 album.AlbumWidth = bmp.PixelWidth;

您只需等待它,然后将此值绑定(或直接设置)到您的图像控件。

例如,您可以使用方法

<Image x:Name="img" ImageOpened="Img_OnImageOpened"/>

private void Img_OnImageOpened(object sender, RoutedEventArgs e)
{
    //start from here to set width and height.
    //you can do it directly, or by the Binding
}
于 2013-04-12T06:31:02.360 回答