WPF InkCanvas控件翻译成中文为墨水面板。对于它的一些相关概念在国内还是比较少的。在这里我们就为大家介绍一下使用中的经验总结。#t#
下面是WPF 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(Bitmap
Frame.Create(rtb));- encoder.Save(file);
WPF InkCanvas打开
要打开已保存的墨迹文件(*.isf),可以使用下面的方法:
- 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属性,比如:
- DrawingAttributes inkDA =
new DrawingAttributes();- inkDA.Width = 5;
- inkDA.Height =5;
- inkDA.Color = Color.
FormArgb(255,255,255,255);- this.inkCanv.Default
DrawingAttributes = inkDA;
WPF InkCanvas还有很多有趣的功能,你可以参考SDK中的InkCanvas类以获得更多.