我在使用Windows Phone 8.1的C#+ XAML环境进行编程方面经验不足。最近我一直在研究一个在运行时加载图像和音频资源的应用程序。虽然我没有音频问题,但我无法加载图像。我已经尝试了许多提议的解决方案但没有成功。
基本上在我的MainPage.xaml文件中,我有这一行:
<Image Source="{Binding Portrait}"/>
在我写的相对C#代码中:
using Windows.UI.Xaml.Media.Imaging;
...
Portrait.Source = new BitmapImage(new Uri("ms-appx:///Assets/Portraits/path/to specific/portrait.jpg", UriKind.Absolute));
当我运行应用程序时,抛出NullReferenceException并且我几乎确定它被抛出,因为Source被设置为null
。
我检查了路径,我完全确定它是正确的,而且我将Resource Build Action设置为Content(我也尝试使用Embedded Resource)。
我保持上下文简单,但告诉我是否需要更多细节。
答案 0 :(得分:0)
表达式
Portrait.Source = new BitmapImage(...);
表示您已将Portrait
属性声明为Image
,例如
public Image Portrait { get; set; }
除了在进行赋值时,属性值未初始化且Portrait
为null
,该属性实际上应为ImageSource
(或BitmapSource
)类型因为ImageSource
是您在XAML中绑定的Image.Source
属性的类型:
public ImageSource Portrait { get; set; }
你应该这样分配:
Portrait = new BitmapImage(...);