在WPF中加载外部图像

时间:2012-08-18 12:21:15

标签: wpf windows vb.net xaml

我正在VB.NET中使用WPF for Windows 8构建一个应用程序,我需要从磁盘加载几个图像。 我不想将图像添加为项目的参考,我只是想按原样加载它们。

我已经通过互联网研究了MSDN上的"Imaging Overview"以及其他一些文章,但没有解决我的问题。

我使用了XAML和代码,但没有任何效果。我无法呈现图像。

Dim myimage As New Image
myimage.Width = 200
Dim bitmapimage As New BitmapImage()
bitmapimage.UriSource = New Uri("C:\Users\MyName\Documents\Database\image.jpg")
myimage.Source = bitmapimage

XAML代码:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Image HorizontalAlignment="Left" Height="265" Margin="191,145,0,0" VerticalAlignment="Top" Width="660">

<Image.Source>
<BitmapImage UriSource="C:\Users\MyName\Documents\Database\image.jpg"/>
</Image.Source>

</Image>
</Grid>

当我加载引用的图像(即Assets / Logo.png)时,它会正确加载它。 我还在应用程序清单中添加了所有必要的功能和解决方案。

1 个答案:

答案 0 :(得分:0)

您的XAML看起来是正确的。也许图像路径无效。然而,它可以写得更简单:

<Image HorizontalAlignment="Left" Height="265" Margin="191,145,0,0" VerticalAlignment="Top" Width="660"
       Source="C:\Users\MyName\Documents\Database\image.jpg" /> 

路径字符串会自动转换为ImageSource实例。

在代码中,您应该使用带有Uri参数的BitmapImage constructor。否则,您必须致电BeginInitEndInit

Dim uri As New Uri("C:\Users\MyName\Documents\Database\image.jpg")
Dim bitmapimage As New BitmapImage(uri)
myimage.Source = bitmapimage