Windows 8 Metro App – 渲染PNG

我需要在Windows 8应用程序中呈现一些自定义PNG。

基本上我需要创建一个自定义的实时磁贴,方法是将我的应用程序中的一些图形放在一个活动磁贴的图像上,唯一的方法是将PNG渲染到磁盘, 请参见此处 。

我应该用什么库来做这件事? 我的第一个想法是使用Xaml UserControlRenderTargetBitmap ,但它在Metro应用程序中不可用。

WinRT XAML Toolkit有一些WriteableBitmap的扩展方法,您也可以使用它们。 您可以使用WriteableBitmapLoadExtensions进行加载,使用WriteableBitmapSaveExtensions进行保存。 它具有相当有限的blittingfunction,因为它已经由WriteableBitmapEx公开并且无论如何都很简单。 WriteableBitmapBlitBlockExtensions只是一种从相同宽度的位图中对全像素像素块进行blit的方法。

Edit * RenderTargetBitmap现在可在Windows 8.1中使用。 它虽然不支持某些元素(我认为它不会渲染相机预览,媒体元素和WebViews )。

目前唯一的选择是使用DirectX(或SharpDX)来创建您的图像。 您可能必须使用低级DirectX API重新创建绘图。 如果您的绘图很简单, WritableBitmapEx也可能会有所帮助。