【问题标题】:Loading external images in WPF在 WPF 中加载外部图像
【发布时间】:2012-08-14 15:39:23
【问题描述】:

我正在 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)时,它会正确加载它。 我还在应用程序清单中添加了所有必要的功能和声明。

【问题讨论】:

  • 你能给我们你想要加载的确切图片吗?
  • 非常奇怪的行为!尝试将该图像引用到您的项目并查看它是否加载?
  • 图片不是问题,我对此 100% 肯定。我使用了不同分辨率和文件类型的各种图像,但仍然没有运气。正如我在第一篇文章中提到的,当我将图像引用到它们加载的项目时,但我不想这样做。

标签: wpf windows vb.net xaml


【解决方案1】:

您的 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

【讨论】:

  • 感谢您的帮助,语法正确,可惜问题依旧。我检查了多次,也许我弄错了路径,但这不是问题。我也尝试将图像移动到其他位置,但仍然不行。
  • 如果你尝试C:\Users\Public\Pictures\Sample Pictures\Desert.jpg作为图片路径呢?或者 - 愚蠢的问题,我知道 - 你的窗口(或网格)可能小于那个大边距191,145
  • 我尝试了图像的多个位置和格式,但没有一个有效。尽管网格比图像大,但我也使用了更小的图像和分辨率。还是什么都没有。
猜你喜欢
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
相关资源
最近更新 更多