注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

WPF中InkCanvas(墨水面板)用法  

2009-09-11 13:56:56|  分类: DotNet |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

感谢Sacha Barber 为我们提供如此Cool的Demo
你可以在这里下载到它 http://files.cnblogs.com/zhouyinhui/InkCanvas.rar

WPF中InkCanvas(墨水面板)用法 - 乂乂 - 一个人,一支烟  ·~~

下面是InkCanvas的常见用法(假设我们的InkCanvas对象为inkCanv):

--------------------------------------------------------------------------------

保存

你可以选择将墨迹保存为墨迹文件或者保存为图片

保存为墨迹文件(*.isf):
this.inkCanv.Strokes.Save(file);其中file为要保存到的文件流(FileStream)

保存为图片:
我们可以先将墨迹绘制到图片上再将图片保存,其中要将Visual对象绘制到图片上可以使用RenderTargetBitmap类,并采用其Render()方法.要将图片保存可以使用BitmapEncoder类,并调用其Save()方法.
 RenderTargetBitmap rtb = new RenderTargetBitmap(width,height, 0, 0, PixelFormats.Default);
 rtb.Render(this.inkCanv);
 BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));
  encoder.Save(file);

--------------------------------------------------------------------------------

打开

要打开已保存的墨迹文件(*.isf),可以使用下面的方法:
this.inkCanv.Strokes = new StrokeCollection(file);

--------------------------------------------------------------------------------

选定

向画图板一样,你可以选定绘制的某些元素,选定有两种方式,一是用户使用鼠标进行选定,另一种是程序使用代码选择指定的墨迹.

使用鼠标选定
很简单地,你只需要切换InkCanvas的编辑模式就可以了.InkCanvas的EditingMode属性是InkCanvasEditingMode枚举类型,你可以将其值切换为InkCanvasEditingMode.Select以便进入选定模式.

使用代码选定
你可以调用InkCanvas的Select()方法

--------------------------------------------------------------------------------

复制、剪切、粘贴或删除选定的对象

这几个操作都比较简单,InkCanvas有对应的方法,分别是CopySelection(),CutSelection(),Past()与Remove().

--------------------------------------------------------------------------------

橡皮擦

要使用橡皮擦,与切换选定模式一样,同样是切换InkCanvas的EditingMode属性,擦除方式有两种,分别是InkCanvasEditingMode.EraseByPoint(按点擦除)与InkCanvasEditingMode.EraseByStroke(按墨迹笔画擦除,一次擦掉不间断的一笔).

--------------------------------------------------------------------------------

笔迹颜色、粗细...

要更改笔迹的相关属性,可以设置InkCanvas的DefaultDrawingAttributes属性,比如:
            DrawingAttributes inkDA = new DrawingAttributes();
            inkDA.Width = 5;
            inkDA.Height =5;
            inkDA.Color = Color.FormArgb(255,255,255,255);
            this.inkCanv.DefaultDrawingAttributes = inkDA;
--------------------------------------------------------------------------------
InkCanvas还有很多有趣的功能,你可以参考SDK中的InkCanvas类以获得更多.

【from 周银辉 http://www.cnblogs.com/zhouyinhui/archive/2007/08/08/841569.html

WPF中InkCanvas(墨水面板)用法 - 乂乂 - 一个人,一支烟  ·~~
  评论这张
 
阅读(1148)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017