不能隐式转换类型'byte[]'& # 39; System.Windows.Controls.Imag

本文关键字:System Imag Controls Windows byte 转换 类型 不能 | 更新日期: 2023-09-27 18:12:38

好吧,有无数从字节到字符串等,但我根本找不到任何关于如何将资源文件visual studio转换成字节[]的东西,无论我做什么,都可以转换成正常的图像,所以我实际上可以在我的c#代码中使用它?

不能隐式转换类型'byte[]'& # 39; System.Windows.Controls.Imag

您可以使用值转换器来完成此操作-

public class InMemoryImageValueConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        var image = new BitmapImage();
        var memoryStream = new MemoryStream((byte[])value);
        image.SetSource(memoryStream);
        return image;
    }
    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
        return null;
    }
}

改编自https://github.com/slodge/MvvmCross/blob/v3/Plugins/Cirrious/PictureChooser/Cirrious.MvvmCross.Plugins.PictureChooser.WindowsPhone/MvxInMemoryImageValueConverter.cs#L17

那么你可以在图像控件中使用

<Image Source="{Binding TheBytes, Converter={StaticResource InMemoryImage}}" />

如果您的图像是应用程序的资源,那么您可以按以下操作

Uri uriR = new Uri("/WP7SampleProject3;component/images/appbar.feature.email.rest.png", UriKind.Relative);
BitmapImage imgSourceR = new BitmapImage(uriR);
this.imageR.Source = imgSourceR;
  • WP7使用图像:内容vs资源构建操作