在新的Windows UWP程序中,引入了一个新的API库: Win2D。它是一个d2d的封装,可以直接使用C#来快速实现高效2D绘图了。这个API虽然在Win8.1时代就开始着手开发了,但最近才完善了下来。本文这里就简单的介绍一下它的基本用法:


安装

Win2D并不是Win10 SDK里面的一部分,需要从Nuget上安装,在程序包管理器里直接安装Win2D.uwp即可。

PM> Install-Package Win2D.uwp

这个是Win10下的库,Win8下需要使用Win2D.win81库。安装完后在Project.json中可以看到相应的库依赖:

使用Win2D在UWP程序中2D绘图(一)_帮助文档


示例:

Win2D引入了一个新的画布:Microsoft.Graphics.Canvas.UI.Xaml.CanvasControl,所有的绘制必须在它上面进行。因此首先在XAML中添加CanvasControl作为底图:

    xmlns:canvas="using:Microsoft.Graphics.Canvas.UI.Xaml"


    <Grid>

         <canvas:CanvasControl Draw="canvasControl_Draw" ClearColor="CornflowerBlue" />

    </Grid>

然后响应其Draw事件,在里面添加绘制动作:

    void canvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)

    {

        args.DrawingSession.DrawEllipse(155, 115, 80, 30, Colors.Black, 3);

        args.DrawingSession.DrawText("Hello, world!", 100, 100, Colors.Yellow);

    }

运行效果如下:

使用Win2D在UWP程序中2D绘图(一)_github_02

这种方式与WinForm和WPF中的自绘制比较像,只是一些API有些差异。目前这里只是一个简单的示例,后面会再写几篇文章对Win2D相关API做更详细点的介绍。感兴趣的朋友可以看下下面的相关文档。


相关文档: