Альтернатива BitmapSource.Create в приложении Магазина Windows (UWP)

У меня есть приложение, написанное в основном на PCL. При использовании этого в приложении WPF у меня есть платформо-зависимый кодовый блок, который выглядит следующим образом:

BitmapSource bitmapSource = BitmapSource.Create(generic.Width, generic.Height, 300, 300, PixelFormats.Bgra32, null, generic.ByteArray, generic.Stride);
        bitmapSource.Freeze();
        return bitmapSource;

где 'generic' - это платформогностическое представление изображения в PCL.

Теперь я хочу написать приложение UWP на основе этого PCL, но BitmapSource.Create, похоже, там не существует. Каковы мои альтернативы?

Обновление: я должен сообщить, что PCL находится под моим контролем, другими словами, я могу изменить поведение, если мой подход неверен. Мне нужен какой-то способ отображения изображения, которое создается в PCL, пиксель за пикселем, как в WPF, так и в UWP.

1 ответ

Решение

Приложения WPF и Universal Windows используют разные библиотеки Xaml в разных пространствах имен (System.Windows и Windows.UI.Xaml) и поэтому не могут напрямую использовать элементы управления.

Для создания программно сгенерированного растрового изображения в приложении Universal используйте класс WriteableBitmap, а не создайте напрямую BitmapSource. WritableBitmap - это BitmapSource, который предоставляет доступ к своему PixelBuffer для приложения, чтобы манипулировать пикселями растрового изображения.

Другие вопросы по тегам