将BitmapImage转换为Image.Source

时间:2017-06-29 19:51:40

标签: c# image xaml url bitmapimage

我目前停留在Visual Studio 2017中的一个项目中。以下代码用于在.xaml页面上设置Image组件的源。

private void setImage()
    {
        var image = new Image();
        var imageUrl = @"http://ddragon.leagueoflegends.com/cdn/5.2.1/img/" +
        currentChamp.Image.Group + "/" + currentChamp.Image.Full;
        Debug.Write(imageUrl);
        BitmapImage bmi = new BitmapImage();
        bmi.BeginInit();
        bmi.UriSource = new Uri(imageUrl, UriKind.Absolute);
        bmi.EndInit();

        image.Source = bmi;
    }

以下是要引用的代码。 ^^^

在所有其他问题中,我发现类似与我的要求相同,这一致是我正在尝试做的事情的正确/已回答/批准方式。但是,我收到的错误是没有人其他任何问题

无法将system.windows.media.imaging.BitmapImage隐式转换为Windows.UI.XAML.media.ImageSource

我的导入,引用和类型都已经过检查并且是正确的。我错过了一个框架吗?是否有可能导致此更新不再有效的更新?

我正在使用VS2017在Microsoft.NETCore.UniversalWindowsPlatform

中工作

请注意,这不是this的重复,因为我没有引用资源文件夹,而且我的路径是绝对的。

2 个答案:

答案 0 :(得分:2)

此处的错误消息告诉您究竟出了什么问题。您在UWP项目中使用非UWP BitmapImage。摆脱对System.Windows.Media.Imaging的使用,并将其更改为Windows.UI.Xaml.Media.Imaging

答案 1 :(得分:2)

Windows.Media.Imaging.BitmapImage是一个WPF类。 Windows.UI.XAML.media.ImageSource是UWP。您找到了WPF的解决方案,但您的UWP Image类需要UWP位图对象。您需要使用Windows.UI.Xaml.Media.Imaging.BitmapImage

我目前无法测试UWP,但是从阅读文档来看,我认为你想要这样的东西:

image.Source = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri(imageUrl, UriKind.Absolute));

您的C#文件中必须有using Windows.Media.Imaging;。用using Windows.UI.Xaml.Media.Imaging;

替换它是明智的

然后你可以使用它:

image.Source = new BitmapImage(new Uri(imageUrl, UriKind.Absolute));