我正在尝试在 XAML Metro 应用程序中编程加载一个 BitmapImage。这是我的代码:
var uri = new Uri("/Images/800x600/BackgroundTile.bmp", UriKind.RelativeOrAbsolute);
var imageSource = new BitmapImage(uri);
第二行代码会抛出一个System.ArgumentException异常:
给定的System.Uri无法转换为Windows.Foundation.Uri。请参见http://go.microsoft.com/fwlink/?LinkID=215849获取详细信息。
链接只是指向MSDN主页,没有用处。
我也尝试删除前导的/
,以防WinRT对相对URI有不同的期望,但我仍然收到相同的异常。
为什么我对一个看起来完全有效的URI会收到这个异常?
IIterable
或IVector
等。你应该只使用System.Uri
。 - Pavel MinaevUri
的WinRT方法都期望一个绝对Uri
。用.NET术语来说,就好像它写着if (uri.IsAbsoluteUri) throw new ArgumentException()
- 这在.NET中是完全有效的,并且通常是相当合理的。 - Pavel Minaev