Silverlight 4, массив байтов - PullRequest
       14

Silverlight 4, массив байтов

0 голосов
/ 16 сентября 2010

Допустим, у меня есть меню приложений в базе данных с их изображениями значков (двоичные данные).Я извлекаю эти меню с иконками типа byte [].Однако, если набор иконок не установлен, я бы хотел использовать значок по умолчанию, который приходит не из базы данных, а из xap (внутри папки Resources).Для отображения значков, поступающих из базы данных, я использую IConverter (byte [] to image), который основан на коде следующего вопроса:

Silverlight 4.0: как преобразовать байт [] в изображение?

Чтобы иметь возможность использовать мой байт [] для преобразования изображений в IConverter, я также хотел бы преобразовать значок по умолчанию в байт [], полученный из xap.Как я могу это сделать?Следующий вопрос предложил использовать класс WriteableBitmap, но я не знаю, как создать WriteableBitMap из источника xap:

Silverlight: изображение в байтах []

Ответы [ 2 ]

1 голос
/ 16 сентября 2010

Возможно, мне не хватает понимания вопроса здесь (возможно, здесь требуется более подробная информация о вашем преобразователе), но если ваш класс преобразователя просто возвращает изображение на основе его байтов, вы не можете просто проверить нулевые байты из БД, а затем вернуть ваше изображение по умолчанию?

public class MyConveter : IConverter {
    public Image ConvertImage(byte[] bytes) {
        if (bytes == null) return GetDefaultImage();
        else return ConverterBytesToImage(bytes);
    }
}

таким образом, вы просто возвращаете изображение в качестве объявления метода, а реализация обрабатывает случай нулевых байтов.

Это на правильном пути?

0 голосов
/ 16 сентября 2010

Поскольку ваш значок по умолчанию является ресурсом, вы можете открыть его как ResourceStream и просто прочитать в байтах.

Будет ли это соответствовать вашим требованиям?

...