将 BitmapImage 转换为 Image.Source

Casting BitmapImage to Image.Source

我目前在 Visual Studio 2017 年的一个项目中卡住了。以下代码用于在 .xaml 页面上设置图像组件的来源。

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;
    }

这里是要引用的代码。 ^^^

在所有其他问题中,我发现 与我要问的问题相似,这一直是 correct/answered/approved 做我想做的事情的一致方式。但是,我收到一个错误,没有其他人在任何问题

中收到

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

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

我在 Microsoft.NETCore.UniversalWindowsPlatform

中使用 VS2017

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

这里的错误信息告诉你到底出了什么问题。您正在 UWP 项目中使用非 UWP BitmapImage。摆脱对 System.Windows.Media.Imaging 的使用并将其更改为 Windows.UI.Xaml.Media.Imaging.

Windows.Media.Imaging.BitmapImage 是一个 WPF class。 Windows.UI.XAML.media.ImageSource 是 UWP。您找到了 WPF 的解决方案,但您的 UWP Image class 需要 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));