Windows Phone 8.1:在运行时加载BitmapImage

时间:2016-05-02 19:37:29

标签: c# xaml windows-phone-8.1

我在使用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)。

我保持上下文简单,但告诉我是否需要更多细节。

1 个答案:

答案 0 :(得分:0)

表达式

Portrait.Source = new BitmapImage(...);

表示您已将Portrait属性声明为Image,例如

public Image Portrait { get; set; }

除了在进行赋值时,属性值未初始化且Portraitnull,该属性实际上应为ImageSource(或BitmapSource)类型因为ImageSource是您在XAML中绑定的Image.Source属性的类型:

public ImageSource Portrait { get; set; }

你应该这样分配:

Portrait = new BitmapImage(...);