我有一个主要用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对图像的平台无关表示。
现在我想写一个基于这个PCL的UWP应用程序,但是BitmapSource。创造在那里似乎不存在。我的选择是什么?
更新:我应该告知PCL在我的控制之下,换句话说,如果我的方法是错误的,我可以改变行为。我需要的是某种方式来显示图像,这是在PCL中生成的,像素逐像素,在WPF和UWP。
WPF和Universal Windows应用程序在不同的命名空间(System. net)中使用不同的Xaml库。Windows vs Windows. ui . xaml),因此不能直接共享控件。
要在通用应用程序中创建以编程方式生成的位图,请使用WriteableBitmap类,而不是直接创建BitmapSource。WritableBitmap是一个BitmapSource,它为应用程序提供了对其PixelBuffer的访问,以操纵位图的像素。