拼吾爱程序人生

首页 » .Net编程 » Silverlight » 在Silverlight2 Beta2中实现手写功能
cobra - 2008-8-3 22:25:00
想象一下我们在纸上写字的过程,我们需要一张纸和一只笔,然后我们下笔开始写第一字的头一个笔画,运笔的过程中我们可以根据力度来控制笔画线条的轻重,最后收笔。然后写下一个笔画......。

在Silverlight2中这张纸就是InkPresenter控件,InkPresenter控件作为一组笔画(Stroke)的容器用来现实墨迹,Ink 引用的是笔、触摸屏和鼠标输入的笔迹或者画的内容。Silverlight 中的 Ink 由StrokeCollection对象构成,StrokeCollection对象由不同的Stroke对象组成。每个Stroke对应一个笔的按下、移动和抬起序列。Stroke可以是一个点、一条直线甚至一条曲线。每个Stroke 由一个 StylusPointCollection对象组成,它又有不同的StylusPoint组成。当笔与数字转换器接触并移动的时候,StylusPoint 对象是一个集合。我们可以通过该对象的DrawingAttributes属性来设置颜色,宽度,轮廓颜色等。

下图说明InkPresenter的结构:

 附件: 您所在的用户组无法下载或查看附件


InkPresenter不支持在该控件内来使用Stroke,StrokeCollection标记。你只能通过编程的方式来控制。下面就来简单实现一个例子来说明。InkPresenter控件中比较关键的事件为MouseLeftButtonDown,MouseMove,MouseLeftButtonUp,当InkPresenter接收到MouseLeftButtonDown事件,你需要创建一个新的Stroke在内存中,并且将其加入到StrokeCollection中,当MouseMove的时候我们将StylusPoints到Stroke中。MouseLeftButtonUp事件中结束Stroke。我们创建一个Silverlight项目,在page.xaml中添加如下代码:

Code


在page.xaml.cs中添加鼠标MouseLeftButtonDown,MouseMove,MouseLeftButtonUp的事件处理程序来实现手写功能代码如下:

Code


1.下面代码用来设置笔画颜色和轮廓颜色:

Code


运行项目后效果如下:

 附件: 您所在的用户组无法下载或查看附件

上面只是实现了最简单的手写功能,还有很多很多不完善的地方。

原文出处:http://www.cnblogs.com/carysun/archive/2008/08/03/slmanual.html

 您可能对 [Silverlight] 的这些文章也感兴趣:

Silverlight全浏览器显示
根据浏览器的大小,自动调整Silverlight的大小
Silverlight 2.0八月份宏大的部署计划
Silverlight整合Asp.net AjAX的技术应用
Silverlight能否让微软看到曙光?
Silverlight1.1中的事件处理
Silverlight 2 初览
微软将发布Silverlight 2浏览器插件测试版
Interview: MLB.com on Their Use of Silverlight
Silverlight教程第一部分:使用Silverlight 2 和 VS 2008创建“Hello World”程序
Silverlight教程第二部分:使用布局管理
Silverlight教程第三部分:使用 Networking取回数据并填充DataGrid
1
查看完整版本: 在Silverlight2 Beta2中实现手写功能
Modify by pin5i DZNT_ExpandPackage 2.1.3296 2007-2009 pin5i.com
 Total Unique Visitors: