WPF InkCanvas使用方法
创始人
2024-06-18 01:11:11
0

WPF InkCanvas控件翻译成中文为墨水面板。对于它的一些相关概念在国内还是比较少的。在这里我们就为大家介绍一下使用中的经验总结。#t#

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

保存

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

保存为墨迹文件(*.isf):

  1. this.inkCanv.Strokes.Save(file); 

其中file为要保存到的文件流(FileStream)

保存为图片:

我们可以先将墨迹绘制到图片上再将图片保存,其中要将Visual对象绘制到图片上可以使用RenderTargetBitmap类,并采用其Render()方法.要将图片保存可以使用BitmapEncoder类,并调用其Save()方法.

  1. RenderTargetBitmap rtb = 
    new RenderTargetBitmap(width,
    height, 0, 0, PixelFormats.Default);  
  2. rtb.Render(this.inkCanv);  
  3. BmpBitmapEncoder encoder = 
    new BmpBitmapEncoder();  
  4. encoder.Frames.Add(Bitmap
    Frame.Create(rtb));  
  5. encoder.Save(file); 

WPF InkCanvas打开

要打开已保存的墨迹文件(*.isf),可以使用下面的方法:

  1. this.inkCanv.Strokes = 
    new StrokeCollection(file); 

WPF InkCanvas选定

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

WPF InkCanvas使用鼠标选定

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

使用代码选定

你可以调用InkCanvas的Select()方法

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

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

橡皮擦

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

WPF InkCanvas笔迹颜色、粗细...

要更改笔迹的相关属性,可以设置InkCanvas的DefaultDrawingAttributes属性,比如:

  1. DrawingAttributes inkDA = 
    new DrawingAttributes();  
  2. inkDA.Width = 5;  
  3. inkDA.Height =5;  
  4. inkDA.Color = Color.
    FormArgb(255,255,255,255);  
  5. this.inkCanv.Default
    DrawingAttributes = inkDA; 

WPF InkCanvas还有很多有趣的功能,你可以参考SDK中的InkCanvas类以获得更多.

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...