win2d绘制图片
2015-09-11 18:56
746 查看
win8(及更新版本)的软件开发已经弃用了wp7中xna等各种框架。虽然现在的框架和wp7的差不多,但是各种类都变了也是累人。怎么绘制图片就是个很烦人的东西。不久之前,win2d横空出世,但是大概因为太新,网上几乎找不到其用法,居然连msdn里都没有例子,也是醉了。所以只能自己慢慢弄了,弄了一天,终于弄出了绘制图片的方法。如下:
1.顺便说一下安装win2d,vs中没有自带,所以要自己安装。如图打开nuget联网添加win2d(8.1)或win10版本。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/03/91b26ea6dcce60b4702f4e66285254c8)
2.直接上代码
xaml文件添加
cs文件
这样就把图给绘制出来了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/03/11fdfdc9a5c2a24162ddbee283b6637d)
await应该是添加线程,用await要在该函数名前加async,如async void canvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)。
另外找到的唯一参考网址:https://github.com/Microsoft/Win2D-Samples/tree/1530e50b955b815b7f718fb32256ffbfee3173ef
1.顺便说一下安装win2d,vs中没有自带,所以要自己安装。如图打开nuget联网添加win2d(8.1)或win10版本。
2.直接上代码
xaml文件添加
xmlns:canvas="using:Microsoft.Graphics.Canvas.UI.Xaml" <Grid <canvas:CanvasControl Draw="canvasControl_Draw" ClearColor="CornflowerBlue" /> </Grid>
cs文件
//cs文件 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; using Windows.Storage.Streams; using Windows.Graphics.Imaging; using Windows.Graphics; using Windows.Storage; using Microsoft.Graphics.Canvas.UI.Xaml; using Microsoft.Graphics.Canvas.Effects; using Microsoft.Graphics.Canvas; using System.Threading.Tasks; async void canvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args) { CanvasBitmap mtg = await CanvasBitmap.LoadAsync(sender,@"C:\Users\lin\AppData\Local\Packages\ef85bb1d-3be4-402d-b9cf-5bd3f662b472_f5vgcp4em8nbc\LocalState\jws.png"); //第二个参数是图片路径,win8程序限制访问文件的范围,这个文件夹有点难找,可以用 // StorageFolder folder = ApplicationData.Current.LocalFolder; folder.toString();获得 var cmdList = new CanvasCommandList(sender); using (var clds = cmdList.CreateDrawingSession()) { clds.DrawImage(mtg,new Rect(10,10,100,100)); //前两个参数是坐标,后两个是绘图大小 } args.DrawingSession.DrawImage(cmdList); }
这样就把图给绘制出来了
await应该是添加线程,用await要在该函数名前加async,如async void canvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)。
另外找到的唯一参考网址:https://github.com/Microsoft/Win2D-Samples/tree/1530e50b955b815b7f718fb32256ffbfee3173ef
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#实现基于链表的内存记事本实例
- C#托管堆对象实例包含内容分析
- C#实现按照指定长度在数字前补0方法小结